嵌入式
系统应用
文章编号:1008-0570(2006)06-2-0134-03
中文核心期刊《微
计算机信息》嵌入式与SOC)2006年第22卷第6-2期(
嵌入式JAVA虚拟机的加速改造
PerformanceImprovementUponembedded
JavaVirtualMachine
(1.江苏工业2.南京大学)刘
辉1陈家骏
2
Liu,HuiChen,Jiajun
摘要:首先分析了Sun公司的嵌入式Java虚拟机KVM性能低效的原因,在此基础上引入两种Java虚拟机性能加速技术:JIT和Native线程。通过建立MVM模型,将这两种加速技术融合到了Java虚拟机中,并详细介绍了实现这两种加速技术的关键数据结构和算法。实验结果表明Java虚拟机的性能获得明显的提高。关键词:Java虚拟机;即时编译;本地线程;嵌入式中图分类号:TP302.7文献标识码:A
技术创新
Abstract:Atfirst,thearticleanalyzesthecausesofpoorperformanceoftheembeddedJavaVirtualMachine(JVM),KVM,developedbySunCorpand,thentriestoimproveupontheKVMbyreferringtotwoJavaVirtualMachinespeeduptechniques,JITandNativeThread.WecombinethesetwospeeduptechniquesintotheJVMbyestablishingmodelMVMand,alsopresentsomedatastructuresandalgorithms,whichareimportanttorealizethesetwotechniques.ExperimentresultsshowthattheperformanceofJVMacquiresobviousimprovement.KeyWords:JavaVirtualMachine,Just-In-Time,NativeThread,embeddedsystem
1引言
由于Java语言的平台无关性和适合于
网络传播的特性,嵌入式Java环境得到越来越多关注和应用。越来越多手持设备如手机、PDA和消费电子产品开始支持Java。用户可以通过网络下载Java应用
程序到手持设备上运行,也可以通过手持设备上网浏览信息、发送消息等。但是,这些都是资源受限的设备,内存有限,CPU主频较低,可用的永久存储空间也不大。因此,一个小巧而又能快速执行Java应用程序的Java虚拟机是这类消费类电子产品为用户所接受的关键。它必须尽可能少地占用内存,充分利用CPU资源和有限的存储空间,以尽快的速度执行Java应用程序。KVM是Sun公司为嵌入式Java环境开发的Java虚拟机,以其的小巧而著称,KVM在系统结构和编码风格上是非常不错的。但是,KVM的性能却比较差,原因之一是因为它只用一个系统进程来执行Java应用。虽然从Java用户级的层次来看它是支持多线程的,但是从操作系统的层次去看它却不是多线程的,称这种Java用户级的线程为Green线程。其次,KVM是以解释执行的方法来运行Java程序的,虽然每次解释执行也是将Java的字节码编译成目标机器码来执行的,并没有保存下来,需要进行编译。刘辉:研究生
-134-
2MVM模型
为了把Native线程与JIT技术融入到KVM中,建立了MVM(MobileVirtualMachine,该虚拟机主要是针对智能手机开发的,所以称为MobileVirtualMachine)模型,如图1所示。
但是每次
图1
MVM加速模型
执行完了之后把编译好了的目标机器码丢弃了,下次执行同样的字节码时还是
MVM模型中各个模块的功能如下:1、L
oader模块负责Java类文件以及运行时所需
数据的加载和合法性检查;
2、Monitor模块负责把Java类信息和方法信息保存到运行时数据区中,Monitor模块还监控整个虚拟机
的状态、控制运行时数据区的访问;在本模型中,虚拟
360元/年邮局订阅号:82-946