用于自主剖析应用程序的方法和设备技术

技术编号:2864258 阅读:162 留言:0更新日期:2012-04-11 18:40
一种用于在数据处理系统中剖析应用程序的方法、设备和计算机指令。探测与指示符相关联的指令的执行。该指令位于例程中。判定该指令已被执行的次数是否大于阈值。如果该指令已被执行的次数大于该阈值,则产生中断以将控制传给监测程序,其中监测程序识别有关例程调用者的信息。

【技术实现步骤摘要】

本专利技术一般涉及一种改进的数据处理系统。具体地说,本专利技术提供一种用于获得数据处理系统内的性能数据的方法和设备。更具体地说,本专利技术提供一种用于在获得数据处理系统内的性能数据时对软件工具提供硬件协助的方法和设备。
技术介绍
在分析和增强数据处理系统和在该数据处理系统内执行的应用程序的性能时,知道数据处理系统内的哪些软件模块正在使用系统资源是有帮助的。数据处理系统的有效管理和增强需要知道如何和何时使用了各种系统资源。性能工具用来监测和检查数据处理系统以确定各种软件应用程序在数据处理系统内执行时的资源消耗。例如,性能工具可以识别数据处理系统中最频繁执行的模块和指令,或者可以识别分配最大量的存储器或执行最多I/O请求的那些模块。硬件性能工具可以内置在系统中,或者在以后的时间点添加。一种公知的软件性能工具是跟踪工具。跟踪工具可以使用多种技术来提供表示执行程序的执行流的跟踪信息。一种技术通过随着特定事件的出现而对其进行记录来跟踪该特定指令序列,即所谓的基于事件的剖析(profiling)技术。例如,跟踪工具可以记录对模块、子例程、方法、函数或系统组件的每一次进入和每一次退出。或者,跟踪工具可以记录每一个存储器分配请求的请求者以及为其分配的存储器量。典型地,为每一个这样的事件产生带时间戳记录。还使用类似于进入-退出记录的对应记录对来跟踪开始和完成I/O或数据传输以及用于很多其它感兴趣事件的任意代码段的执行。为了改善由不同计算机家族生成的代码的性能,经常有必要确定处理器在执行代码时在何处花费了时间,这样的工作在计算机处理领域内通常称作定位“热点”。在理想情况下,希望以指令和/或源代码行级别查出这样的热点,从而将注意力集中在通过代码改进而可能受益最大的区域。另一种跟踪技术涉及周期性地对程序的执行流进行采样以识别该程序似乎花费大量时间的特定程序位置。该技术基于以规则间隔周期性地中断应用程序或数据处理系统执行的思想,即所谓的基于样本的剖析。每次中断时,对预定时间长度或者预定次数的感兴趣事件记录信息。例如,在此间隔期间可以记录当前执行线程的程序计数器,其是正被剖析的较大程序的可执行部分。可以在后处理时对照数据处理系统的装入图(load map)和符号表信息来解析这些值,并且可以通过这一分析获得正在何处花费时间的剖析信息(profile)。创建诸如得到与特定情形或问题有关的答案的工具可能非常费力,并且可能非常难以校准,因为软件工具本身影响测试中的系统。本专利技术认识到对工具开发和问题分析的硬件协助可以极大地减轻开发软件性能工具所需的工作量。此外,随着处理器的密度增大,可以包括硬件协助来提供附加调试和分析特性。因此,具有一种用于为用来分析数据处理系统的性能的性能工具提供硬件协助的改进方法、设备和计算机指令将是有利的。
技术实现思路
本专利技术提供了一种用于在数据处理系统中剖析应用程序的方法、设备和计算机指令。探测与指示符相关联的指令的执行。该指令位于例程中。判定该指令已被执行的次数是否大于阈值。如果该指令已被执行的次数大于该阈值,则产生中断以将控制传给监测程序,其中监测程序识别有关例程调用者的信息。附图说明在所附权利要求中阐述了被认为是本专利技术特征的新颖特性。然而,通过参考下面结合附图对示例性实施例的详细描述,本专利技术本身以及优选使用模式及其进一步目的和优点将会得到更好的理解,其中图1是可以实现本专利技术的数据处理系统的方框图;图2是根据本专利技术优选实施例的用于处理信息的处理器系统的方框图;图3是示出根据本专利技术优选实施例的用于处理与指示符相关联的指令的组件的图;图4是示出根据优选实施例的一种用于将性能指示符与指令或存储单元(memory location)相关联的机制的图;图5是示出根据本专利技术优选实施例的指令包(bundle)的图;图6A和6B是根据本专利技术优选实施例的包含性能指示符的子例程的图;图7是根据本专利技术优选实施例的用于处理包含性能指示符的指令的过程的流程图;图8是根据本专利技术优选实施例的用于选择性地发送指令到中断单元的过程的流程图;图9是根据本专利技术优选实施例的用于响应对与性能指示符相关联的存储单元的访问而产生中断的过程的流程图;图10是根据本专利技术优选实施例的用于对事件进行计数的过程的流程图;图11是根据本专利技术优选实施例的用于对指令进行选择性计数的过程的流程图;图12是根据本专利技术优选实施例的用于对指令进行选择性计数的过程的流程图;图13是根据本专利技术优选实施例的用于识别超过阈值的指令的过程的流程图;图14是根据本专利技术优选实施例的用于访问存储单元的过程的流程图;图15是示出根据本专利技术优选实施例的用于生成元数据如性能指示符的组件的方框图;图16是示出根据本专利技术优选实施例的元数据的图;图17是示出根据本专利技术优选实施例的装入和维护性能检测映像高速缓存(performance instrumentation shadow cache)时所涉及的组件的图;图18是根据本专利技术优选实施例的用于生成指令元数据的过程的流程图;图19是根据本专利技术优选实施例的用于生成存储单元元数据的过程的流程图;图20是根据本专利技术优选实施例的用于对特定指令的执行进行计数的过程的流程图;图21是根据本专利技术优选实施例的用于对特定存储单元的访问进行计数的过程的流程图;图22是示出根据本专利技术优选实施例的用于访问关于对指令的执行或对存储单元的访问所收集的信息的组件的图; 图23是根据本专利技术优选实施例的用于自主修改程序中的代码以允许对部分代码进行选择性计数或剖析的组件的方框图;图24是根据本专利技术优选实施例的用于将性能指示符动态添加到指令中或者使其与指令相关联的过程的流程图;图25是示出根据本专利技术优选实施例的用来通过将性能指示符与页内的指令相关联来扫描页的组件的图;图26是根据本专利技术优选实施例的用于将指示符关联到页内的指令的过程的流程图;图27是示出根据本专利技术优选实施例的包含堆栈帧的调用堆栈的图;图28是根据本专利技术优选实施例的用于识别与调用和返回从性能监测器单元收集数据的指令相关联的事件的过程的流程图;图29是根据本专利技术优选实施例的用于识别已被执行多于选定次数的指令的过程的流程图;图30是根据本专利技术优选实施例的用于在特定指令被执行多于某选定次数时检查调用堆栈并识别例程调用者的过程的流程图;图31是示出根据本专利技术优选实施例的为进行监视而选择的指令和数据范围的图;以及图32是根据本专利技术优选实施例的用于对设定范围的访问次数以及在设定范围内执行的指令数进行计数的过程的流程图。具体实施例方式现在参照图1,其中示出了可以实现本专利技术的数据处理系统的方框图。客户机100是计算机的例子,实现本专利技术的过程的代码或指令可以位于其中。客户机100采用外围组件互连(PCI)局部总线架构。虽然所示例子采用PCI总线,但是也可以使用其它总线架构如加速图形端口(AGP)和工业标准架构(ISA)。处理器102和主存储器104通过PCI桥108连接到PCI局部总线106。PCI桥108还可以包括用于处理器102的集成存储器控制器和高速缓冲存储器。与PCI局部总线106的其它连接可以通过直接组件互连或者通过内插板来实现。在所示例子中,局域网(LAN)适配器110、小型计算机系统接口SCSI主机总线适配器112和扩展总线接口本文档来自技高网
...

【技术保护点】
一种用于在数据处理系统中剖析应用程序的方法,该方法包括:探测与指示符相关联的指令的执行,其中该指令位于例程中;判定执行该指令的频度是否大于阈值;以及响应执行该指令的频度大于该阈值,产生中断以将控制传给监测程序,其中监测程序识别有关例程调用者的信息。

【技术特征摘要】
US 2003-9-30 10/675,7831.一种用于在数据处理系统中剖析应用程序的方法,该方法包括探测与指示符相关联的指令的执行,其中该指令位于例程中;判定执行该指令的频度是否大于阈值;以及响应执行该指令的频度大于该阈值,产生中断以将控制传给监测程序,其中监测程序识别有关例程调用者的信息。2.如权利要求1所述的方法,还包括当产生中断时,检查调用堆栈;以及根据对调用堆栈的检查来识别例程调用者。3.如权利要求1所述的方法,其中所述信息包括例程调用者和在例程中执行的指令数中的至少一个。4.如权利要求1所述的方法,还包括根据所述信息产生调用图。5.如权利要求1所述的方法,还包括根据由监测程序收集的信息,选择要分析的例程调用者。6.一种用于在数据处理系统中剖析应用程序的数据处理系统,所述数据处理系统包括探测装置,用于探测与指示符相关联的指令的执行,其中该指令位于例程中;判定装置,用于判定执行该指令的频度是否大于阈值;以及产生装置,用于响应执行该指令的频度大于该阈值,产生中断以将控制传给监测程序,其中监测程序识别有关例程调用者的信息。7.如权利要求6所述的数据处理系统,还包括检查装置,用于在产生中断时,检查调用堆栈;以及识别装置,用于根据对调用堆栈的检查来识...

【专利技术属性】
技术研发人员:弗兰克E莱文伊尼奥M皮内达罗伯特J厄克特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1