【技术实现步骤摘要】
本专利技术实施例涉及嵌入式虚拟机的
,尤其涉及一种基于嵌入式虚拟机的动态编译的方法及装置。
技术介绍
由于嵌入式平台本身在硬件资源方面存在的诸多限制,并且嵌入式虚拟机所要执行的应用中存在大量的循环,例如中断调用和安全策略等反复调用,会对虚拟机的效率造成一定的影响。当嵌入式虚拟机在执行大量数据传输时,势必会对数据的传输造成影响,从而影响到整个系统。如果要充分利用嵌入式虚拟机的各种功能,比如安全监测、代码识别、数据隔离等,系统性能的优化是有待提高的。
技术实现思路
本专利技术实施例提出一种基于嵌入式虚拟机的动态编译的方法及装置,旨在解决如何提高嵌入式虚拟机运行性能的问题。第一方面,一种基于嵌入式虚拟机的动态编译的方法,所述方法包括:获取字节码中的代码块;若所述代码块是已知热点,则从预设寄存器中获取本地代码进行编译;若所述代码块不是已知热点,则获取所述代码块的运行信息;根据所述代码块的运行信息确定所述代码块是否符合预设热点的阈值条件,所述运行信息包括所述代码块的历史编译次数;若所述代码块符合预设热点的阈值条件,则将所述代码块编译为本地代码,并将所述本地代码存储在预设寄存器中,返回执行获取字节码中的代码块的操作。优选地,所述将所述代码块编译为本地代码,并将所述本地代码存储在预设寄存器中,包括:分析器读入所述热点的代码块,用语法分析的方法将所述代码块转化为代码生成器 ...
【技术保护点】
一种基于嵌入式虚拟机的动态编译的方法,其特征在于,所述方法包括:获取字节码中的代码块;若所述代码块是已知热点,则从预设寄存器中获取本地代码进行编译;若所述代码块不是已知热点,则获取所述代码块的运行信息;根据所述代码块的运行信息确定所述代码块是否符合预设热点的阈值条件,所述运行信息包括所述代码块的历史编译次数;若所述代码块符合预设热点的阈值条件,则将所述代码块编译为本地代码,并将所述本地代码存储在预设寄存器中,返回执行获取字节码中的代码块的操作。
【技术特征摘要】 【专利技术属性】
1.一种基于嵌入式虚拟机的动态编译的方法,其特征在于,所述方法包括:
获取字节码中的代码块;
若所述代码块是已知热点,则从预设寄存器中获取本地代码进行编译;
若所述代码块不是已知热点,则获取所述代码块的运行信息;
根据所述代码块的运行信息确定所述代码块是否符合预设热点的阈值条
件,所述运行信息包括所述代码块的历史编译次数;
若所述代码块符合预设热点的阈值条件,则将所述代码块编译为本地代码,
并将所述本地代码存储在预设寄存器中,返回执行获取字节码中的代码块的操
作。
2.根据权利要求1所述的方法,其特征在于,所述将所述代码块编译为本
地代码,并将所述本地代码存储在预设寄存器中,包括:
分析器读入所述热点的代码块,用语法分析的方法将所述代码块转化为代
码生成器能使用的内部语义信息;
所述代码生成器根据所述内部语义信息生成本地代码,并将所述本地代码
发送给代码部署器;
所述代码部署器将所述本地代码存储在所述预设寄存器中。
3.根据权利要求2所述的方法,其特征在于,所述代码部署器将所述本地
代码存储在所述预设寄存器中,包括:
所述代码部署器在所述预设寄存器中为所述本地代码分配一个预设最小单
位的存储空间;
若所述本地代码的容量增大,则所述代码部署器继续为所述本地代码分配
至少一倍的所述最小单位的存储空间,并将新分配的最小单位的存储空间的末
尾地址和与上一个分配的最小单位的存储空间的开始地址通过指针链接。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述将所述本
地代码存储在预设寄存器中之后,还包括:
获取所述本地代码存储在所述预设寄存器中的地址信息,并将所述地址信
息替代所述字节码中与对应代码块相同的所有代码块的原地址。
5.根据权利要求4所述的方法,其特征在于,所述从预设寄存器中获取本
地代码进行编译,包括:
读取所述字节码中的热点的地址信息,所述热点的地址信息为所述热点对
应的本地代码在所述预设寄存器的地址信息;
根据所述热点的地址信息获取所述热点对应的本地代码,并根据所述本地
代码进行编译。
6.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包
括:
每间隔预设时间获取所述本地代码的运行信息,根据所述本地代码的运行
信息确定所述本地代码是否符合预设热点的阈值条件,所述本地代码的运行信
息包括所述本地代码的运行次数;
若所述本地代码不符合预设热点的阈值条件,则在所述预设寄存器中删除
所述本地代码。
技术研发人员:陈小波,
申请(专利权)人:北京锐安科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。