计算机系统性能分析方法和装置的制作方法

文档序号:6596867阅读:230来源:国知局
专利名称:计算机系统性能分析方法和装置的制作方法
技术领域
本发明涉及计算机系统性能分析,具体涉及计算机系统性能分析的方法和装置。
背景技术
对于系统设计者、软件开发者、用户或数据中心运营者而言,以低成本利用硬件采样数据来分析系统(例如硬件、软件和服务)性能的不足并加以改进是有价值的。作为系统性能分析工具,有Oprofile,Intel Vtune,IBM VPA等。这些工具根据例如性能计数器提供的采样数据,利用表格或图形提供可视化的系统性能分析结果。如本领域所知的,一般地,在系统运行时,硬件性能计数器等会监控系统的运行情况,并将相关事件记录在例如系统日志文件中。通常,能够监控并记录近百个事件,包括节拍(tick)、指令缓存缺失(i-cache miss)、数据缓存缺失(d-cache miss)、分支缺失 (branchmiss)等。性能计数器会持续对这些事件进行计数。例如,假定性能计数器每隔Ims 就对系统进行监控,看哪条指令在执行,并记录下该指令的地址。每监控到一条指令在执行,就对该指令的节拍计数一次。在预定的时间间隔内(例如1小时)重复上述监控,并对同一指令在执行的事件计数累加,形成总的节拍。类似地,对其它事件也进行计数,并记录相应的地址。基于系统日志文件中关于上述事件的记录,系统性能分析工具可以形成分类列表。通过对分类表数据的进一步分析,可以找出系统的性能不足或瓶颈。例如,根据分类列表中对指令节拍的排序,可以找出热点(hotspot),即相对地被频繁执行的指令、相应的函数、模块等。进而,可以对相应的热点代码区域进行调整,以优化系统性能。但是,如上所述,既有的性能分析工具只能提供基于指令、函数或模块的性能统计的分类列表,而不能提供基于指令块(指令聚类)的性能统计的分类列表。并且,只能提供基于指令、函数或模块等固定粒度的热点。

发明内容
鉴于现有技术中存在的上述问题,本发明的一个目的是提供一种新的系统性能分析方法和装置,其至少部分地解决了现有技术的上述问题。此外,本发明的另一目的是为系统性能分析结果提供可移植的注释。为了实现上述目的,根据本发明的一个方面,提供一种计算机系统性能分析方法, 包括以下步骤接收计算机系统性能日志文件;对所述计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类;以及输出基于所述代码聚类的系统性能分析结果。根据本发明的另一方面,提供一种计算机系统性能分析装置,包括性能日志文件接收器,用于接收计算机系统性能日志文件;聚类处理器,用于对计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类;以及性能查看器,用于输出基于代码聚类的系统性能分析结果。本发明提供了生成基于相关联的指令块(指令聚类)的性能统计的分类列表的方法和装置。此外,还可以为上述方法和装置提供对指令聚类附加含义的可移植注释机制。其中,可以采用自上而下(Top-Down)的处理步骤根据显著的偏移间隙(offset gap)将所有指令划分成若干聚类。还可以使用中值滤波处理步骤去除数据中的噪声。可以自动生成指令聚类的注释,或者手动编辑注释。可以在用户间共享注释,实现可移植。可以根据预定的量度,例如节拍百分比、密度等识别如热点的重要聚类。与现有技术相比,本发明对热点的识别更为智能化,提高了热点的识别率和准确性。当结合以下说明和附图考虑时,将更好地获知和理解本发明的这些和其它方面以及实施例。


图1为示出根据本发明第一实施例的计算机系统性能分析方法的示意性流程图。图2为示出根据本发明第二实施例的计算机系统性能分析方法的示意性流程图。图3为示出根据本发明实施例的聚类处理的示意性流程图。图4为示出图3的聚类处理中确定显著间隙的实例的示意性流程图。图5为示出根据本发明的第二实施例的变型的中值滤波处理和二值化处理的示意性流程图。图6为示出根据本发明实施例的聚类处理的确定显著间隙的实例的示意图。图7为示出在图5的中值滤波处理后的结果实例的示意图。图8为根据本发明第三实施例的计算机系统性能分析装置的示意性框图。图9和图10为根据本发明实施例的从性能分析结果识别热点的实例的示意图。图11为根据本发明实施例的从性能分析结果大温和区域的实例的示意图。
具体实施例方式本发明人发现,对于许多由大量函数组成的应用程序而言,热点可能不是指令、函数或模块级的,而是例如比一个指令大且比一个函数/模块小的指令块(指令聚类)。另外,除热点之外,还可能存在大段密集执行的、但每条代码指令的执行时间并不是很高的代码区域。这样的代码区域中不含热点且覆盖显著长的地址范围,其同样也是具有性能改进的潜力的。在本说明书中,将这样的代码区域称为大温和区域(large warm area) 0虽然大温和区域也是有优化空间的,但容易被按指令排序的现有的性能分析工具忽略。既有的分析工具提供的基于指令、函数或模块的性能统计的分类列表不能标记出上述大温和区域。并且,除热点和大温和区域之外,还可能存在代码重排潜力区域(code-reordering potential area) 0所述代码重排潜力区域可以是指令缓存缺失(i-cache miss)显著且地址范围小于1个缓存线(cacheline)的代码区域。既有的分析工具也不能识别代码重排潜力区域。因此,既有的工具不能准确地识别热点,不能识别大温和区域、代码重排潜力区域等,在应用上有很大的局限性。以下参照

本发明的实施例。第一实施例
图1为示出根据本发明第一实施例的计算机系统性能分析方法的示意性流程图。在步骤100,接收计算机系统性能日志文件。计算机系统性能日志文件在计算机系统运行时产生。例如,硬件性能计数器(未示出)对系统运行中的事件(诸如节拍、指令缓存缺失、数据缓存缺失等)进行监控,并通过性能日志产生器(未示出)将相关信号转换成计算机系统性能日志文件。在步骤110,对计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,以获得代码聚类。该代码聚类可以包括连续的被硬件性能计数器采样到的被执行代码。即该代码聚类中所采样到的被执行代码在编号上是连续的。所述代码聚类具有灵活粒度。所谓“灵活粒度”指的是所产生的聚类是根据实际系统运行情况灵活确定的,而不是传统的固定的指令级、函数级或模块级等。换言之,本实施例中的聚类可以是大于一条指令且小于函数或符号(symbol)的级别。在某些情况下,所产生的聚类也可能是指令、函数或模块,但是这是根据实际情况而定的,而非预先设定的。可以采用二维聚类处理,即以节拍和指令偏移地址这两个维度进行聚类。在步骤120,输出基于在步骤110中产生的代码聚类的系统性能分析结果。例如,该系统性能分析结果可以列表、图形等可视化形式呈现,供用户查看和使用。系统性能分析结果的列表中的项可以包括聚类编号(ClusterNo)、所属模块(module)、所属符号 (symbol)、起始地址(startoffset)、结束地址(endoffset)、指令地址范围(span)、聚类中心(centeriod)、节拍(ticks)、节拍百分比(tPerent)、节拍密度(tDensity)、指令缓存缺失总数(ICDMirMs total)、数据缓存缺失总数(DCDMirMs total)、指令缓存缺失密度 (ICDMirMs density)、数据缓存缺失密度(DCDMirMs density)等。其中,节拍是由硬件性能计数器对相应代码聚类的执行次数所进行的计数。节拍百分比是相应的代码聚类的节拍与总的节拍之比。节拍密度是相应的代码聚类的节拍与指令地址范围之比。类似地,指令缓存缺失密度是指令缓存缺失总数与指令地址范围之比,数据缓存缺失密度是数据缓存缺失总数与指令地址范围之比。聚类中心是相应聚类中的节拍与偏移地址乘积的总和与节拍的总和之比。第二实施例图2为示出根据本发明第二实施例的计算机系统性能分析方法的示意性流程图。 在本实施例,采用相同的附图标记表示与图1相同的步骤,并省略其详细描述。根据本实施例的计算机系统性能分析方法与实施例的一个不同之处在于可以进一步从系统性能分析结果中识别重要代码聚类,例如热点、大温和区域、代码重排潜力区域等。在下文中将详细描述识别热点、大温和区域、代码重排潜力区域的实例。在本实施例的方法中,在进行与第一实施例相同的步骤100-120之后,在步骤 130,根据预定量度从系统性能分析结果中识别重要代码聚类。例如,预定量度可以是节拍百分比或节拍密度,重要代码聚类可以是热点。节拍百分比是相应的代码聚类的节拍与总的节拍之比。节拍是由硬件性能计数器对相应代码聚类的执行次数所进行的计数。节拍密度是相应的代码聚类的节拍与地址范围之比。例如,可以按照例如节拍百分比的排序,将节拍百分比较高的代码聚类识别为热点,作为重要代码聚类。或者,可以按照地址范围的排序,将覆盖显著长(大于预定阈值) 的地址范围但是不包含热点的代码聚类识别为大温和区域,作为重要代码聚类。或者,可以按照指令缓存缺失总数或指令缓存缺失密度排序,将上述数值相对预定阈值显著大且地址范围小于1个缓存线的代码聚类识别为代码重排潜力区域。可选地,本实施例的计算机系统性能分析方法还可以包括为代码聚类附加关于代码聚类的含义的注释的处理。例如,在步骤140,为代码聚类附加关于代码聚类的含义的注释。例如,可以将代码聚类与先前的系统性能分析结果进行匹配(比较)以获得相对应的代码描述,将所述代码描述作为相应代码聚类的注释。所述代码描述可以是表示相应代码聚类是热点、大温和区域、代码重排潜力区域、或者其它与系统性能分析结果中的项目相关联的描述。或者,可以计算每个所述代码聚类与相邻代码聚类的距离,并将所述距离作为所述注释。在步骤150,可以手动编辑注释。例如,用户可以手动输入关于某个或某些指令聚类的注释,以表明它们的功能、所属的过程等。步骤150可以与步骤140并行处理。在先前的系统性能分析结果中没有与相应的代码聚类匹配的注释的情况下,可以手动编辑注释。 或者,在希望对所匹配出的注释进行修改的情况下,也可以手动编辑注释。在步骤160,可以输入/输出所产生的注释。例如,可以将在步骤140和150中产生的注释作为注释文件输出。通过模糊匹配,其它用户在运行另一工作负载时,可以输入对于相应指令聚类的注释,从而实现可移植的注释。作为一个示例性的实例,例如,可以使用聚类中心(centeroid)作为模糊匹配的参数。其中,聚类中心可以通过下式计算centeroid= sum (ticks * offset) / sum (ticks) (1)其中,centeroid表示聚类中心,ticks表示节拍,offset表示地址偏移。S卩,聚类中心等于相应聚类中的节拍与偏移地址乘积的总和除以节拍的总和。聚类中心基本不会随工作负载而改变。因此,只要聚类中心一致,就表明所对应的聚类的地址范围匹配,从而可以在不同的工作负载中使用相同的注释。然后,例如,在步骤170,可以根据系统性能分析结果的分类列表,将所识别的热点对应到相应的代码段。并且,调整相关联的或代码段或系统参数,以便优化系统性能。以下进一步描述以上实施例中的二维聚类处理的细节。图3为示出根据本发明实施例的聚类处理的示意性流程图。首先,在步骤210,对所有的间隙进行递降排序。其中间隙是当前指令与相邻的下一指令之间的地址差距。将最大间隙的序号设为最小值,其它间隙的序号依次递增。间隙是用于识别逻辑上相关的指令的最有效的信号之一。在步骤220,确定显著间隙,即间隙中的相对于其它间隙明显较大的间隙。由显著间隙分隔的指令可以被放置在不同的聚类中。图4为示出确定显著间隙的实例的示意性流程图。例如,在步骤310,按照下式确定每个间隙的斜率S = gaPi/(N-i)(2)其中S是斜率,gaPi是当前间隙的值,i是当前间隙的序号,N是间隙的总数。然后,在步骤320,确定斜率显著增加的第一显著间隙。确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙。显著间隙阈值可以适当选择,以使得聚类处理的结果较为合理,既不会因为划分的粒度过于粗糙而将差距较远的指令放置在相同的聚类中,也不会因此划分的粒度过于细致而变成传统的指令级。接着,在步骤330,将大于等于第一显著间隙的所有间隙均标识为显著间隙。图6示出确定显著间隙的一个实例。如图所示,将间隙按递减的顺序进行排序。最大间隙的序号为0,其它间隙的序号依次增加。利用上述式1确定间隙的斜率。可以将显著间隙阈值设定为例如1.5。进而确定显著增加的第一显著间隙。并将大于第一显著间隙的所有间隙均确定为显著间隙。然后,返回图3,在步骤230,对与显著间隙相对应的指令进行标识,用于划分所述代码聚类。即,以与显著间隙相对应的指令为边界,将上述计算机系统性能日志文件所涉及的指令划分到相应的代码聚类中。从而根据所确定的显著间隙将指令划分成若干代码聚类。此外,还可以包括利用标准的机器学习方式根据用户的使用情况来自动调整显著间隙阈值的步骤(未示出)。例如,用户所选择使用的阈值会被记忆,通过投票的方式每次使用时选取最近被肯定次数最多的阈值。由此,可以灵活地调整显著间隙阈值,使之符合要求。第二实施例的变型例在某些情况下,采用第二实施例的按显著间隙进行聚类的处理所获得的代码聚类中可能会包含指令地址范围(span,通常是相应代码聚类的结束地址与起始地址之差)较大、且节拍的方差较大的代码聚类。节拍的方差较大意味着相应的代码聚类中指令的节拍的波动较大,节拍数值高低相差较多,因而存在将相应的代码聚类进一步划分的可能和需要。作为第二实施例的一个改进的变型例,可以在按照第二实施例进行聚类处理获得代码聚类之后,对于达到了节拍的方差阈值和指令地址范围阈值的代码聚类进行中值滤波处理、二值化处理等,以更为有效地进行聚类处理。替代地,也可以对按照第二实施例进行聚类处理所获得的全部代码聚类进行中值滤波处理、二值化处理,从而对指令地址范围较大、且节拍的方差较大的代码聚类进一步划分,而对其余的代码聚类不作进一步划分。即,对能够二值化(二值化处理后能产生2个值)的代码聚类作进一步划分,而对不能二值化(二值化处理后只能产生1个值)的代码聚类保持不变。图5为示出根据本变型例的中值滤波处理和二值化处理的示意性流程图。首先,在步骤410,对节拍的数值采用中值滤波处理以去除噪声。所谓中值滤波处理,即采用当前点和前后各k个点,共业+1个点,取中值作为当前点的替代值,从而获得更平滑的曲线。然后,在步骤420,利用节拍的平均值作为阈值将节拍的数值二值化。即,高于阈值的数值取值1,低于阈值的数值取值0。接着,在步骤430,利用二值化的节拍的数值来进一步划分代码聚类。图7为示出在图5的中值滤波处理后的结果实例的示意图。如图7所示,例如,在起始偏移地址(star toff set)为844和结束偏移地址 (endOffset) 1288的范围内,生成3个子聚类。这3个子聚类分别对应于844-1140、 1140-1226,1226-1288 的地址范围。
应该理解,在以上描述的各个实施例的方法中,各步骤及其顺序仅是为了描述方便,而非限制性的。本领域技术人员明白,可以根据需要合并或分解各个步骤,或者调整步骤的顺序。例如,输出系统性能分析结果的步骤可以在识别重要代码聚类的步骤之后执行, 或者在执行输出注释的步骤之后执行,等等。第三实施例图8为根据本发明第三实施例的计算机系统性能分析装置800的示意性框图。
如图8所示,根据本实施的计算机系统性能分析装置800包括聚类处理器810和性能查看器820。计算机系统性能分析装置800还包括性能日志文件接收器(未示出),用于接收计算机系统性能日志文件。例如,性能计数器(未示出)对系统运行中的事件(诸如节拍、指令缓存缺失、数据缓存缺失等)进行监控,并通过性能日志产生器(未示出)将相关信号转换成计算机系统性能日志文件。聚类处理器810对该性能日志文件所涉及的指令进行灵活粒度的指令聚类处理, 获得代码聚类。可以采用二维聚类处理,即以节拍和指令偏移地址这两个维度进行聚类。性能查看器820与聚类处理器810耦接,用于输出基于代码聚类的系统性能分析结果。例如,该系统性能分析结果可以列表、图形等可视化形式呈现,供用户查看和使用。聚类处理器810可以包括热点生成器802。热点生成器802可以用于根据预定量度从上述系统性能分析结果中识别热点,并生成热点的分类列表。例如,预定量度可以是节拍百分比或节拍密度,重要代码聚类可以是热点。节拍百分比是相应的代码聚类的节拍与总的节拍之比。节拍是由计数器对相应代码聚类的执行次数所进行的计数。节拍密度是相应的代码聚类的节拍与地址范围之比。例如,可以按照例如节拍百分比的排序,将节拍百分比较高的代码聚类识别为热点,作为重要代码聚类。上述热点仅是一个实例,聚类处理器810还可以从系统性能分析结果中识别出诸如大温和区域、代码重排潜力区域等的其它重要代码聚类。具体地,聚类处理器810进行如下聚类处理对所有的间隙进行递降排序,将最大间隙的序号设为最小值,其它间隙的序号依次递增,其中间隙是当前指令与相邻的下一指令之间的地址差距;确定显著间隙,即间隙中的相对于其它间隙明显较大的间隙;对与显著间隙相对应的指令进行标识,用于划分所述代码聚类。即,以与显著间隙相对应的指令为边界,将上述计算机系统性能日志文件所涉及的指令划分到相应的代码聚类中。从而根据所确定的显著间隙将指令划分成若干代码聚类。其中,聚类处理器810可以按照如下的方式确定显著间隙。首先,按照下式确定每个间隙的斜率S = gaPi/(N-i)(2)其中S是斜率,gaPi是当前间隙的值,i是当前间隙的序号,N是间隙的总数。然后,确定斜率显著增加的第一显著间隙。确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙。接着,将大于等于第一显著间隙的所有间隙均标识为显著间隙。可选地,聚类处理器810可以进一步包括阈值调整器804。阈值调整器804利用标准的机器学习方式根据用户的使用情况来自动调整所述显著间隙阈值,以使其不断优化。
此外,聚类处理器810也可以包括用于进行与第二实施例的变型例类似的中值滤波处理和二值化处理等的组件(未示出),以更为有效地进行聚类处理。可选地,计算机系统性能分析装置800可以进一步包括注释生成器830,用于为代码聚类附加关于代码聚类的含义的注释。例如,注释生成器830可以将代码聚类与先前的系统性能分析结果进行匹配以获得相对应的代码描述,并将所述代码描述作为注释。或者, 注释生成器830可以计算每个代码聚类与相邻代码聚类的距离,并将所述距离作为注释。可选地,计算机系统性能分析装置800可以进一步包括注释编辑器840,允许手动编辑注释。例如,用户可以手动输入关于某个或某些指令聚类的注释,以表明它们的功能、 所属的过程等。可选地,计算机系统性能分析装置800可以进一步包括注释输入器850和注释输出器860。通过注释输出器860将产生的注释作为注释文件输出。通过模糊匹配,在其它用户运行另一工作负载时,可以由注释输入器850输入对于相应指令聚类的注释,从而实现可移植的注释。作为一个示例性的实例,例如,可以使用聚类中心(centeroid)作为模糊匹配的参数。其中,聚类中心可以通过下式计算centeroid = sum(ticks * offset)/sum(ticks) (1)其中,centeroid表示聚类中心,ticks表示节拍,offset表示地址偏移。S卩,聚类中心等于节拍与偏移地址乘积的总和除以节拍的总和。聚类中心基本不会随工作负载而改变。因此,只要聚类中心一致,就表明所对应的聚类的地址范围匹配,从而可以在不同的工作负载中使用相同的注释。可选地,注释生成器830可以进一步包括建议生成器832,用于根据例如热点的统计数据生成关于性能优化的建议。可选地,性能查看器820可以包括注释查看器825,用于查看所述注释。或者,注释查看器825可以作为与性能查看器不同的组件实现。以下描述以上描述的本发明的应用实例。实例 1本发明实施例的一个重要应用是识别热点以优化系统性能。图9和图10为根据本发明实施例的从性能分析结果识别热点的实例的示意图。图9为一个性能分析结果的实例的列表显示的一部分。如图9所示,聚类号 (clusterNo)为13的聚类的节拍密度(tDensity)显著高于其它聚类。因此,聚类号为13 的聚类被识别为热点。并且,在如图10所示的可视化的图表中,通过所示的环将该热点突出显示出来。实例2图11为根据本发明实施例的从性能分析结果大温和区域的实例的示意图。大温和区域指一大段密集执行的代码区域,但每条代码指令的执行时间并不是很高。大温和区域也是有优化空间。如图11所示,将与聚类号为0和1的聚类识别为大温和区,并通过所示的环突出显示该区域。实例3本发明还可以识别代码重排潜力区域。例如,可以从系统性能分析结果中找到属于同一个符号、地址范围较小、且指令缓存缺失密度较大的两个或更多聚类,作为代码重排潜力区域。指令缓存缺失密度可以通过相应聚类的指令缓存缺失的计数与地址范围的比值来计算。在本发明人所作一个实例中,通过重新排序,将找到的两个上述代码重排潜力区域放置在相邻区域中,从而减少了热点,获得了大约5 %的增益。本发明还可以实现为例如计算机程序产品,其可以包含有用于实现根据本发明的计算机系统性能分析方法和装置的部分或全部的代码。在使用之前,可以把代码存储在其它计算机系统的存储器中,例如,存储在硬盘或诸如光盘或软盘的可移动的存储器中,或者经由因特网或其它计算机网络进行下载。所公开的本发明的方法和装置可以在软件、硬件、或软件和硬件的结合中实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统, 例如微处理器、个人计算机(PC)或大型机来执行。或者,所公开的本发明的方法和装置还可以作为服务为用户远程提供。以上描述了本发明的优选实施例。具体实施例的以上描述完整地展现了本发明的一般特性,其它方面可通过应用当前知识在不脱离一般原理的情况下容易地修改和/或适应这些具体实施例的各个应用。因此这些应用和修改应该并且意欲被理解为在所公开实施例的含义和等同范围内。应该理解,这里采用的措辞和术语是说明的目的,而不是限制。因此,虽然根据实施例已经描述了本发明,但是本领域普通技术人员将认识到,在所附权利要求的范围内可以通过修改来实现本发明。
权利要求
1.一种计算机系统性能分析方法,包括以下步骤 接收计算机系统性能日志文件;对所述计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类;以及输出基于所述代码聚类的系统性能分析结果。
2.根据权利要求1所述的方法,还包括以下步骤根据预定量度从所述系统性能分析结果中识别重要代码聚类。
3.根据权利要求2所述的方法,其中所述预定量度是节拍百分比,所述重要代码聚类是执占,所述节拍百分比是相应的代码聚类的节拍与总的节拍之比,所述节拍是由所述计数器对相应代码聚类的执行次数所进行的计数。
4.根据权利要求2所述的方法,其中所述预定量度是节拍密度,所述重要代码聚类是执占,所述节拍密度是相应的代码聚类的所述节拍与地址范围之比,所述节拍是由所述计数器对相应代码聚类的执行次数所进行的计数。
5.根据权利要求1所述的方法,其中对所述计算机系统性能日志文件进行灵活粒度的指令聚类处理的步骤包括以下步骤对所有的间隙进行递降排序,将最大间隙的序号设为最小值,其它间隙的序号依次递增,其中所述间隙是当前指令与相邻的下一指令之间的地址差距; 确定所述间隙中的相对于其它间隙明显较大的显著间隙; 对与所述显著间隙相对应的指令进行标识,用于划分所述代码聚类。
6.根据权利要求5所述的方法,其中确定显著间隙的步骤包括 按照下式确定每个间隙的斜率S = gaPi/(N-i);其中S是所述斜率,gaPi是当前间隙的值,i是当前间隙的序号,N是所述间隙的总数; 确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙并将大于等于其的所有间隙均标识为显著间隙。
7.根据权利要求5所述的方法,进一步包括以下步骤 对所述节拍的数值采用中值滤波处理以去除噪声;利用所述节拍的平均值作为阈值将所述节拍的数值二值化;以及利用二值化的所述节拍的数值来进一步划分所述代码聚类。
8.根据权利要求1所述的方法,还包括以下步骤 为所述代码聚类附加关于代码聚类的含义的注释。
9.根据权利要求8所述的方法,为所述代码聚类附加关于代码聚类的含义的注释的步骤包括将所述代码聚类与所述系统性能分析结果匹配以获得相对应的代码描述; 将所述代码描述作为所述注释。
10.根据权利要求8所述的方法,为所述代码聚类附加关于代码聚类的含义的注释的步骤包括计算每个所述代码聚类与相邻代码聚类的距离; 将所述距离作为所述注释。
11.一种计算机系统性能分析装置,包括性能日志文件接收器,用于接收计算机系统性能日志文件;聚类处理器,用于对所述计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类;以及性能查看器,用于输出基于所述代码聚类的系统性能分析结果。
12.根据权利要求11所述的装置,其中所述聚类处理器进一步包括热点生成器,用于根据预定量度从所述系统性能分析结果中识别热点,并生成所述热点的分类列表。
13.根据权利要求12所述的装置,其中所述预定量度是节拍百分比;所述节拍百分比是相应的代码聚类的节拍与总的节拍之比,所述节拍是由所述计数器对相应代码聚类的执行次数所进行的计数。
14.根据权利要求12所述的装置,其中所述预定量度是节拍密度;所述节拍密度是相应的代码聚类的节拍与地址范围之比,所述节拍是由所述计数器对相应代码聚类的执行次数所进行的计数。
15.根据权利要求11所述的装置,其中所述聚类处理器进行如下的灵活粒度的指令聚类处理对所有的间隙进行递降排序,将最大间隙的序号设为最小值,其它间隙的序号依次递增,其中所述间隙是当前指令与相邻的下一指令之间的地址差距; 确定所述间隙中的相对于其它间隙明显较大的显著间隙; 对与所述显著间隙相对应的指令进行标识,用于划分所述代码聚类。
16.根据权利要求15所述的装置,其中确定显著间隙的处理包括 按照下式确定每个间隙的斜率S = gaPi/(N-i);其中S是所述斜率,gaPi是当前间隙的值,i是当前间隙的序号,N是所述间隙的总数; 确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙并将大于等于其的所有间隙均标识为显著间隙。
17.根据权利要求16所述的装置,其中所述聚类处理器进一步包括 阈值调整器,根据用户的使用情况来自动调整所述显著间隙阈值。
18.根据权利要求11所述的装置,进一步包括注释生成器,用于为所述代码聚类附加关于代码聚类的含义的注释。
19.根据权利要求18所述的装置,其中所述注释生成器将所述代码聚类与所述系统性能分析结果匹配以获得相对应的代码描述,并将所述代码描述作为所述注释。
20.根据权利要求18所述的装置,其中所述注释生成器计算每个所述代码聚类与相邻代码聚类的距离,并将所述距离作为所述注释。
21.根据权利要求18所述的装置,其中所述注释生成器包括建议生成器,根据所述热点的统计数据生成关于性能优化的建议。
22.根据权利要求18所述的装置,进一步包括注释输出器和注释输入器,利用模糊匹配处理来使得所述注释可移植,并且, 所述性能查看器包括注释查看器,用于查看所述注释。
全文摘要
本发明涉及一种计算机系统性能分析方法和装置。本发明采用自上而下的处理步骤根据显著的偏移间隙将所有指令划分成若干聚类。可以自动生成指令聚类的注释,或者手动编辑注释。可以在用户间共享注释,实现可移植。可以根据预定的量度识别如热点的重要聚类。
文档编号G06F11/34GK102231130SQ20101000209
公开日2011年11月2日 申请日期2010年1月11日 优先权日2010年1月11日
发明者S·J·海斯格, 王艳琦, 肖晶, 袁昱, 邹嘉 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1