[发明专利]动态编译方法及装置有效
申请号: | 201410727430.3 | 申请日: | 2014-12-03 |
公开(公告)号: | CN105718298B | 公开(公告)日: | 2019-02-15 |
发明(设计)人: | 傅杰;靳国杰;高翔;王剑 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F8/41 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨贝贝;黄健 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 编译 方法 装置 | ||
本发明实施例提供一种动态编译方法及装置,其中,所述动态编译方法包括:在当前编译队列中存在待编译的热点方法时,获取所述当前编译队列中各待编译的热点方法的运行速度和大小;根据所述各待编译的热点方法的运行速度和大小,确定所述各待编译的热点方法的优先级;调度所述当前编译队列中优先级最高的热点方法进行编译。本发明实施例提供的动态编译方法及装置,可以大幅度提升编译的吞吐量,有效提高虚拟机的响应速度。
技术领域
本发明实施例涉及虚拟机技术,尤其涉及一种动态编译方法及装置。
背景技术
虚拟机(Virtual Machine,简称VM)指通过软件(或者辅以少量硬件支持)的方法来虚拟出一台具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机,并且这台虚拟的计算机通常还支持一套自己的指令集,称为虚拟机指令集。虚拟机依托于本地的物理机,通过其执行引擎对给定的虚拟机指令序列(即目标程序)在本地机器上模拟执行。虚拟机的执行引擎可以由解释器来实现。由于解释器具有可移植性高、实现代价低和内存占用少等特点,大多数虚拟机的执行引擎都包含解释器。解释器以一条虚拟机指令为单位进行取指令、译码和执行。但是单纯的解释执行性能低下,鉴于此,虚拟机中引入动态编译系统以提升虚拟机性能。其中,编译器是动态编译系统的核心,编译器以一组连续的虚拟机指令序列(基本块、函数或方法)为单位整体编译成本地CPU指令序列(也称为本地方法),然后由硬件直接执行编译后的本地方法。由于编译器避免了重复的取指令和译码的过程,同时又在编译时进行了大量卓有成效的优化,因而编译器的性能可以达到解释器的性能的10倍以上。由于编译器是在程序运行过程中对虚拟机所检测到的执行频度较高的方法(也称为热点方法)进行动态编译的,故又将其称为即时编译器(Just-in-time Compiler,简称JIT)。
现有的虚拟机中一般同时包含有解释器和即时编译器,并采用混合运行模式来执行应用程序。所谓混合运行模式是指由解释执行和硬件直接执行相混合的模式,具体为:对于程序中的任意一个方法m,均由解释器开始执行;若方法m的执行频度较高,则虚拟机调用即时编译器将方法m编译成本地方法,然后由硬件直接执行编译生成的本地方法。由于解释器的解释执行的性能较低,故让程序中尽量多的方法通过硬件直接执行是提升虚拟机性能的关键。但是,和传统C/C++等静态编译不同,即时编译器是在程序运行过程中进行动态编译的,这会引入额外的运行时开销。如果编译的方法过多,动态编译将需占用大量的计算机资源,使得程序的正常执行受到影响,虚拟机对外界的响应变得迟钝。相反,如果编译的方法过少,大多数方法将由解释器执行,造成程序运行速度同样非常缓慢。故而,现在亟需一种动态编译方法,以优化动态编译过程中虚拟机的系统性能。
发明内容
本发明实施例提供一种动态编译方法及装置,以提升虚拟机动态编译的吞吐量及提高虚拟机的响应速度。
第一方面,本发明实施例提供一种动态编译方法,其中,所述方法包括:
在当前编译队列中存在待编译的热点方法时,获取所述当前编译队列中各待编译的热点方法的运行速度和大小;
根据所述各待编译的热点方法的运行速度和大小,确定所述各待编译的热点方法的优先级;
调度所述当前编译队列中优先级最高的热点方法进行编译。
根据第一方面,在第一方面的第一种可能的实现方式中,所述调度所述当前编译队列中优先级最高的热点方法进行编译之后,还包括:
将所述优先级最高的热点方法的编译状态置为已编译。
根据第一方面,在第一方面的第二种可能的实现方式中,所述调度所述当前编译队列中优先级最高的热点方法进行编译之后,还包括:
将所述优先级最高的热点方法从所述当前编译队列中删除。
根据第一方面,在第一方面的第三种可能的实现方式中,所述获取当前编译队列中各热点方法的运行速度和大小之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410727430.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于虚拟机集群的回滚方法及系统和服务器
- 下一篇:输电线路推拉式防鸟刺装置