【技术实现步骤摘要】
本专利技术实施例涉及虚拟机技术,尤其涉及一种动态编译方法及装置。
技术介绍
虚拟机(VirtualMachine,简称VM)指通过软件(或者辅以少量硬件支持)的方法来虚拟出一台具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机,并且这台虚拟的计算机通常还支持一套自己的指令集,称为虚拟机指令集。虚拟机依托于本地的物理机,通过其执行引擎对给定的虚拟机指令序列(即目标程序)在本地机器上模拟执行。虚拟机的执行引擎可以由解释器来实现。由于解释器具有可移植性高、实现代价低和内存占用少等特点,大多数虚拟机的执行引擎都包含解释器。解释器以一条虚拟机指令为单位进行取指令、译码和执行。但是单纯的解释执行性能低下,鉴于此,虚拟机中引入动态编译系统以提升虚拟机性能。其中,编译器是动态编译系统的核心,编译器以一组连续的虚拟机指令序列(基本块、函数或方法)为单位整体编译成本地CPU指令序列(也称为本地方法),然后由硬件直接执行编译后的本地方法。由于编译器避免了重复的取指令和译码的过程,同时又在编译时进行了大量卓有成效的优化,因而编译器的性能可以达到解释器的性能的10倍以上。由于编译器是在程序运行过程中对虚拟机所检测到的执行频度较高的方法(也称为热点方法)进行动态编译的,故又将其称为即时编译器(Just-in-timeCompiler,简称JIT)。现有的虚拟机中一般同时包含有解释器和即时编译器,并采用混合运行模式来 ...
【技术保护点】
一种动态编译方法,其特征在于,包括:在当前编译队列中存在待编译的热点方法时,获取所述当前编译队列中各待编译的热点方法的运行速度和大小;根据所述各待编译的热点方法的运行速度和大小,确定所述各待编译的热点方法的优先级;调度所述当前编译队列中优先级最高的热点方法进行编译。
【技术特征摘要】
1.一种动态编译方法,其特征在于,包括:
在当前编译队列中存在待编译的热点方法时,获取所述当前编译队列中
各待编译的热点方法的运行速度和大小;
根据所述各待编译的热点方法的运行速度和大小,确定所述各待编译的
热点方法的优先级;
调度所述当前编译队列中优先级最高的热点方法进行编译。
2.根据权利要求1所述的方法,其特征在于,所述调度所述当前编译队
列中优先级最高的热点方法进行编译之后,还包括:
将所述优先级最高的热点方法的编译状态置为已编译。
3.根据权利要求1所述的方法,其特征在于,所述调度所述当前编译队
列中优先级最高的热点方法进行编译之后,还包括:
将所述优先级最高的热点方法从所述当前编译队列中删除。
4.根据权利要求1所述的方法,其特征在于,所述获取当前编译队列中
各热点方法的运行速度和大小之后,还包括:
确定所述各热点方法的活跃性度量值,所述活跃性度量值用于体现所述
各热点方法的活跃性;
将活跃性度量值小于或等于活跃性阈值的热点方法从所述当前编译队列
中删除;其中,所述活跃性阈值大于或等于0。
5.根据权利要求4所述的方法,其特征在于,
所述活跃性度量值为热点方法的运行速度;或者,
所述活跃性度量值为热点方法的执行次数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述各
待编译的热点方法的运行速度和大小,确定所述各待编译的热点方法的优先
级,包括:
对于所述当前编译队列中的任一待编译的热点方法m,根据所述热点方
法m的运行速度speed(m)和大小size(m),采用以下公式得到所述热点方法m
的优先级p(m):
p(m)=f(size(m),speed(m));
其中,所述f表示关于所述size(m)和speed(m)的二元函数,并且满足:
(1)所述f在size(m)≥0和speed(m)≥0时有定义;
(2)对任意size(m)≥0和speed(m)≥0,所述f的值为非负;
(3)当size(m)≥0时,所述f随所述size(m)单调递减;
(4)当speed(m)≥0时,所述f随所述speed(m)单调递增。
7.根据权利要求6所述的方法,其特征在于,所述f为以下公式:
f = speed ( m ) size ( m ) + 1 ; ]]>或者,
f = 9000 size ( m ) + 1 + 100 · speed ( m ) . ]]>8.根据权利要求6所述的方法,其特征在于,所述获取所述当前编译队
列中各待编译的热点方法的运行速度,包括:
采用以下公式得到所述热点方法m的运行速度speed(m):
speed ( m ) = Δexecute ( m ) Δt ; ]]>其中,所述Δt为当前时刻前的长度为预设时间常量的时间段,Δexecute(m)
表示在过去的Δt时间段内所述热点方法m的执行次数。
9.一种动态编译装置,其特征在于,包括:
参数获取模块,用于在当前编...
【专利技术属性】
技术研发人员:傅杰,靳国杰,高翔,王剑,
申请(专利权)人:龙芯中科技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。