[发明专利]动态编译方法和装置、可读存储介质及电子设备在审
申请号: | 201810847490.7 | 申请日: | 2018-07-27 |
公开(公告)号: | CN110764771A | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 傅杰;陈昊轩;王雪;敖琪;高翔 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/455 |
代理公司: | 11319 北京润泽恒知识产权代理有限公司 | 代理人: | 莎日娜 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 剖面分析 动态编译 可读存储介质 方法和装置 电子设备 数据编译 提升系统 污点数据 纠正 编译 | ||
本发明提供了一种动态编译方法和装置、可读存储介质及电子设备,其中所述动态编译方法获取热点方法对应的剖面分析数据;对所述剖面分析数据中的污点数据进行纠正,生成目标剖面分析数据;依据所述目标剖面分析数据将所述热点方法编译为本地代码。本发明提供的动态编译方法,能够提升剖面分析数据的准确性,通过纠正后的目标剖面分析数据编译所对应的热点方法,能够提升系统的性能。
技术领域
本发明涉及虚拟机技术领域,特别是涉及一种动态编译方法和装置、可读存储介质及电子设备。
背景技术
虚拟机包括解释器和动态编译器;虚拟机最初由解释器解释执行,随着技术的改进,当虚拟机侦测到某个方法被频繁调用时,该方法被称为热点方法,虚拟机中的编译线程会按照一定的编译调度策略使用即时编译器将热点方法编译为与本地平台相关的机器码(简称本地代码)。此后当执行该热点方法的时候,可以直接调用上述本地代码,能够大幅提升程序的执行效率。
在虚拟机的解释器解释执行期间,通常会对程序进行剖面分析,以期通过收集大量的运行信息来指导后续动态编译的优化过程,收集的运行信息为剖面分析数据;在具体实现过程中,通过剖面分析系统来收集剖面分析数据,由剖面分析系统对热点方法进行编译。该系统对于程序中任意一个方法m的执行次数进行计数,当其执行次数超过某个阈值时,启动对方法m的剖面分析功能,以获得剖面分析数据。
剖面分析的有条件启动会导致方法在编译时,部分代码片段尚未来得及执行剖面分析的计数,使得收集到的剖面分析数据中包含与实际不符的污点数据,导致剖面分析数据准确性差;例如:在剖面分析数据中记录某调用点的调用次数为零,而实际上该调用点的调用次数并非零。剖面分析数据中的污点数据会造成内联等基于剖面分析数据的优化算法出现误判,最终导致系统的性能大幅降低。
发明内容
本发明提供了一种动态编译方法和装置、可读存储介质及电子设备,以解决现有技术中存在的热点方法剖面分析数据准确性差的问题。
为了解决上述问题,本发明公开了一种动态编译方法,其中,所述方法包括:获取热点方法对应的剖面分析数据;其中,所述热点方法为一组连续的虚拟机指令序列;对所述剖面分析数据中的污点数据进行纠正,生成目标剖面分析数据;依据所述目标剖面分析数据将所述热点方法编译为本地代码。
为了解决上述问题,本发明还公开了一种动态编译装置,其中,所述装置包括:获取模块,用于获取热点方法对应的剖面分析数据;其中,所述热点方法为一组连续的虚拟机指令序列;纠正模块,用于对所述剖面分析数据中的污点数据进行纠正,生成目标剖面分析数据;编译模块,用于依据所述目标剖面分析数据将所述热点方法编译为本地代码。
为了解决上述问题,本发明又公开了一种电子设备,其中所述电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中的一种或多种动态编译方法。
为了解决上述问题,本发明再次公开了一种可读存储介质,其中,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本发明中的一种或多种动态编译方法。
与现有技术相比,本发明包括以下优点:
本发明实施例提供的动态编译方法和装置、可读存储介质及电子设备,在动态编译的过程中,对剖面分析数据中的与实际不符的污点数据进行纠正,能够提升剖面分析数据的准确性。通过纠正后的目标剖面分析数据编译所对应的热点方法,能够提升系统的性能。
附图说明
图1是根据本发明实施例一的一种动态编译方法的步骤流程图;
图2是根据本发明实施例二的一种动态编译方法的步骤流程图;
图3是按照第一预设规则循环遍历第一节点集合中各第一节点的步骤流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810847490.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种对象间转换与赋值的方法和装置
- 下一篇:兼容多种NFCC的方法及装置