指令性能分析的方法和设备的制造方法_2

文档序号:8269717阅读:来源:国知局
)。
[0024] 下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各 方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、 专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序 指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框 中规定的功能/操作的装置。
[0025] 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture) 〇
[0026] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备 上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0027] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使 用范围带来任何限制。
[0028] 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0029] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、时频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0030] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0031] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, 以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模 块被配置以执行本发明各实施例的功能。
[0032] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包括--但不限于--操作系统、一个或者多个应用程序、其它 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0033] 计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的 设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信 的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接 口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适 配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示 出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代 码、设备驱动器、冗佘处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存 储系统等。
[0034] 如前所述,由于超标量处理器中是以指令分组为单位进行流水线操作,而不是像 传统处理器那样以指令为单位进行流水线操作,因此针对超标量处理器进行指令性能分 析,与针对传统处理器的指令性能分析存在很大不同。
[0035] 采样分析是最常用的一种指令性能分析。采样分析是计算机程序开发中的重要环 节。采样分析通过记录程序或程序中各部分占用CPU的时间,不仅可以评估所开发的程序 是否能够满足预定的性能指标,还能够分析出程序中的哪些部分影响了程序的整体性能, 从而指导程序优化。
[0036] 在采样分析期间,采样器通过使用处理器的硬件中断或操作系统的终端,在各采 样时刻获取程序计数器的值。程序计数器是处理器中的一个专用寄存器,用于存储当前时 刻所处理的指令的地址。这样,采样器就可以获得在各采样时刻正在处理的指令地址。CPU 的状态分为忙碌和空闲。如果在某采样时刻,CPU处于忙碌状态,则该次采样为有效采样, 通常称为一个Tick。有效采样表示在该采样时刻CPU正在处理程序计数器所指示的指令, 而并非处于空闲状态。经过足够长时间的采样后,就可以对各条指令被处理器处理的次数 进行统计意义上的观察,进而可以以各种粒度对程序的性能进行分析。所述粒度诸如指令 级、代码级、函数级、进程级和程序级。
[0037] 如果某个指令所对应的有效采样的数目很大,则该指令称为热指令。针对所述热 指令进行的优化具有较高的优化效率。换句话话说,相较于对程序中其他指令进行相同程 度的优化,对所述热指令进行所述优化所达到的效果对程序整体性能的优化程度更高。例 如,假设在某个程序中,某个指令的CPU时间占用率为60%,S卩如果该程序所有指令所对应 的有效采样之和为100个单位,则有60个单位的有效采样用来处理该指令级。这样,如果 该指令消耗的CPU时间缩短一半,则整个程序所消耗的CPU时间会缩短为原来的十分之七。 作为比较,如果将该程序中剩余指令所消耗的CPU时间缩短一半,则整个程序所消耗的CPU 时间只能缩短为原来的十分之八。因此,可以优先针对该指令进行优化。
[0038] 本发明的发明人发现,对于某一程序,在以超标量处理器为处理平台进行采样分 析时,经常出现CPU时间占用率为0 %的指令。这意味着这些指令没有被处理或很少被处 理。但是,针对相同的程序,在以传统处理器为处理平台进行采样分析时,这些指令的CPU 时间占用率并非为〇%,即这些指令实际上是要被处理的。
[0039] 本发明的发明人还发现,在以超标量处理器为处理平台进行采样分析时,地址连 续的多条指令的CPU时间占用率往往分布可能非常不均匀。本领域技术人员可以理解,地 址连续的多条指令往往在高级语言中只构成一行代码。例如,高级语言中的求1+1的结果 的代码,对应到指令级别,就可能是多条指令:将第一寄存器赋值为1的指令,将第二寄存 器也赋值为1的指令,对这两个寄存器执行加法的指令,以及将结果写入第三个寄存器的 指令。因此,地址连续的多条指令,往往是需要一并执行的,不应该出现CPU时间占用率分 布非常不均匀的情况。
[0040] 图3示出根据本发明实施例的采样分析的结果的一部分,其中以超标量处理器为 处理平台。图3中的第一列是指令的序号,第二列是指令的相对地址,第三列是指令对应的 汇编语言,第四列是指令对应的有效采样的数目,第五列是指令的CPU时间占用率。如前所 述,指令的CPU时间占用率指的是处理该指令所消耗的CPU时间,占执行整个程序所消耗的 CPU时间的百分比。指令的CPU时间占用率和指令对应的有效采样的数目一样,只具有相对 意义。指令的CPU时间占用率与指令对应的有效采样的数
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1