[发明专利]用于动态优化的程序阶段检测有效
申请号: | 200580009418.8 | 申请日: | 2005-03-30 |
公开(公告)号: | CN101124550A | 公开(公告)日: | 2008-02-13 |
发明(设计)人: | A·V·内费安;A·-R·阿德尔-塔巴塔拜 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 杨凯;王勇 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 动态 优化 程序 阶段 检测 | ||
技术领域
本实施例涉及可管理的运行时计算机系统环境技术,更具体地,涉及通过阶段检测进行的动态优化。
背景技术
设计成运行于可管理的运行时环境(MRTE)的计算机程序是以中性字节码的格式分发的,且这些程序必须由动态编译器编译成本地机器码。受到管理的应用程序的性能取决于由编译器执行的优化和代码生成的质量。可将系统利用率监视用于确定何时需要优化各种应用程序。随着运行在系统上的应用程序的数量的增加,对应用程序优化的需要也随之增加了。
许多微处理器结构依赖于编译器的性能优化。某些结构的性能非常依赖于昂贵和复杂的代码生成优化(如全局调度和控制预测)。
为优化可执行代码,使用了性能反馈和优化技术。这些技术的问题是,它们通常通过硬件实施或是专用的,因此并不适于动态优化或软件实施。而且,许多优化要求等待-观察的方法,因为要试验不同的优化标准来实现优化。这个过程相当耗时,而且由于系统利用的变化,可能仅能在短时间内优化应用程序。
附图说明
在附图的各幅图中,通过举例而非限制的方式说明了本发明的实施例,其中,相似的附图标记指示相似的组件。应当注意,在本公开中,本发明的“某一”实施例不一定指相同的实施例,且它们意味着至少一个实施例。
图1示出了用于检测稳定的程序阶段(phase)的进程(process)的一个实施例。
图2示出了分支跟踪缓冲区(BTrB)的样本地址随时间的实例缓冲区的图。
图3示出了对应于两个已检测阶段的直方图。
图4示出了使用图2中的数据时检测到的阶段序列。
图5示出了一个系统的实施例。
图6示出了与另一系统耦合的系统的实施例。
具体实施方式
本文讨论的实施例通常涉及一种用于动态检测稳定进程阶段的方法和系统。参考附图,下面将描述一些示范实施例。这些示范实施例用于说明实施例,且不应当将它们视为对实施例范围的限制。
具有动态档案导引优化(例如:可管理的运行时环境、动态二进制优化器、以及动态二进制翻译器)的系统试图确定何时动态地重新优化正在执行的程序。图1示出了用于可执行代码的动态优化的、检测稳定程序阶段的进程的一个实施例。在框110处,进程100以选择阶段阈值开始。该阶段阈值可以是在时间t采集的分支地址的M个连续样本的函数。在一个实施例中,用户选择上述阶段阈值,并将该值作为进程中的预定静态参数输入。也可通过用户输入装置动态修改阶段阈值。
进程100继续进行到框120。在框120中,接收多个经过排序的缓冲区(buffer)。在一个实施例中,性能监视单元(PMU)收集经过排序的分支跟踪缓冲区(BTrB)。可以将这些经过排序的缓冲区存储在本地存储器或文件中。所接收的缓冲区包括所取得的最后L个分支的地址。L的值可以是预定的或是由用户选定(如4、8、10等)。所取得的分支地址的缓冲区对应于特定的采样时刻。图2示出了在执行诸如基准程序的实例程序期间,BTrB样本地址的实例缓冲区随时间的图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200580009418.8/2.html,转载请声明来源钻瓜专利网。