[发明专利]用于动态代码优化的差异静态分析有效
| 申请号: | 201880040815.9 | 申请日: | 2018-05-30 |
| 公开(公告)号: | CN110770698B | 公开(公告)日: | 2023-10-17 |
| 发明(设计)人: | M·A·布朗;D·C·赖顿;蔡美琴;S·M·F·拉曼;张毅;I·M·比尔曼;E·詹奇沃多杰;D·A·哈特格拉斯;D·M·吉利斯 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/455 |
| 代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 姚杰 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 动态 代码 优化 差异 静态 分析 | ||
一种用于为具有动态行为的程序生成优化的本机代码的机制,使用对该程序的静态分析来预测该程序的不同元素在该程序执行时可能被使用的可能性。静态分析在程序执行之前被执行,并利用置信度指示符来标记程序的某些元素,置信度指示符用高置信度级别或低置信度级别对元素进行分类。然后,置信度指示符由时间提前的本机编译器使用以生成本机代码并优化代码以用于加快执行和/或较小大小的本机代码。
背景技术
编译器是将以高级编程语言编写的源代码转化为低级语言的程序,诸如中间级代码(例如字节码、公共语言基础结构(CIL)等)和/或机器代码(即本机代码、目标代码)。时间提前(Ahead-of-Time,AOT)编译器在程序执行之前将程序的源代码转化为机器代码。AOT编译器对程序执行静态分析,这对于在程序执行之前捕获错误以及执行旨在降低程序执行速度的优化非常有用。
即时(JIT)编译器在运行时将中间级别代码转化为机器代码。在程序执行期间,语言虚拟机将中间级代码转化为机器代码指令。JIT编译用于支持依赖当前程序状态的编程语言的动态特征,诸如反射、运行时类型检查和后期绑定。动态特征通过在运行时启用对程序的扩展和对类型系统的修改来提供更大的灵活性,但以承担增加程序的执行时间为代价。
发明内容
提供本发明内容以简化形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
本文描述的主题涉及支持利用动态特征的、针对程序的时间提前的本机代码的生成的技术、系统、处理和设备。采用静态分析,其预测在程序执行期间使用某些程序元素的可能性,以确保本机代码包含执行程序并支持动态特征所需的所有信息。分析引擎从可能执行程序的已知点静态跟踪程序流,并迭代跟踪可访问指令所需的每个依赖关系的数据流,以便于确定方法、类型和字段是否可能在程序执行时被使用或访问。
基于指示当程序执行时可能被使用的方法、类型和字段的确定性的程度的规则,生成置信度指示符并将其与每个方法、标签和字段相关联。置信指示符由本机编译器用来确定是否生成本机代码以支持某些动态特征,并确定要执行哪些优化以便于降低程序的执行速度和/或本机代码的大小。
通过阅读以下具体实施方式并查看相关附图,这些以及其他特征和优点将变得显而易见。应当理解,前面的一般描述和下面的详细描述都只是说明性的,并不限制所要求保护的方面。
附图说明
图1示出了用于动态代码优化的差异静态分析的示例性系统。
图2是示出了用于分析程序的中间语言代码以便将中间语言代码与置信度指示符相关联的示例性方法的流程图。
图3是示出了用于利用置信度指示符生成本机代码的示例性方法的流程图。
图4是示出了第一操作环境的框图。
图5是示出了第二操作环境的框图。
具体实施方式
所公开的主题涉及一种AOT编译机制,该AOT编译机制静态分析具有动态特征的程序,以预测在程序执行时可能使用该程序的某些元素(例如方法、类型和字段)的可能性。该静态分析用于生成本机代码,该本机代码包含执行程序所需的所有指令和数据。可能使用和不太可能使用的程序的那些元素之间的差异使AOT编译器能够时间提前执行优化,这降低本机代码的大小和/或提高其执行速度。
在不执行程序的情况下并且通过执行程序的静态分析来进行预测。静态分析是在程序的执行之前执行的,并使用置信度指示符标记程序的某些元素,置信度指示符用高置信度级别或低置信度级别对元素进行分类。程序的静态分析与简档数据不同,简档数据是通过使用不同输入数据集合多次运行该程序的已安装版本而生成的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880040815.9/2.html,转载请声明来源钻瓜专利网。





