一种基于ARM7的嵌入式Java虚拟机性能优化技术研究

更新时间:2023-08-05 21:29:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

分析了Java字节码的解释执行和基于解释执行的Direct Threaded Interpreter性能优化技术.以Direct Threaded Interpreter为基础,提出并实现了一种针对ARM7平台的嵌入式Java虚拟机解释器性能优化方案.对嵌入式Java虚拟机的参考实现、Direct Threaded Interpreter优化方案和新优化方案在ARM7平台上的性能比较表明,所提出的方案优

第24卷第5期2007年5月

计算机应用研究

ApplicationResearchofComputers

V01.24.No.5

Mav2007一种基于ARM7的嵌入式

JaVa虚拟机性能优化技术研究

马嘉,周明天,陈虹

(电子科技大学计算机与工程学院,四川成都610054)

摘要:分析了Java字节码的解释执行和基于解释执行的DirectThreadedInterpreter性能优化技术。以Direct,111readedInterpreter为基础,提出并实现了一种针对ARM[7平台的嵌入式Java虚拟机解释器性能优化方案。对嵌入式Java虚拟机的参考实现、Direct眈readedInterpreter优化方案和新优化方案在ARM7平台上的性能比较表明,所提出的方案优于前两者。

关键词:嵌入式Java虚拟机;ARM7;Java字节码;直接线索化解释器

中图分类号:7rP391.9文献标志码:A文章编号:1001.3695(2007)05—0097—04

PeIfon:IlanceOptimizationTechnologyforEmbedded

JavaVMBasedonARM7

MAJia,ZHOUMing-tiaIl,CHENHong

(&^00zo,c。呷“fe,sc曲n∞&西硒n∞^增,踟觇m渺矿尉唧ron如&诂,口&扎如,10妞),矿蕊iM,Ck,锄‘S油∽n610054,吼iM)AbSt瑚脱:ThispaperanalyzedtheexecutionofJavab”ecodeanddirectthreadedoptimizationtechnolog)rofinterpreter,pr0一posedandimplementedanewperfb珊anceoptiIIlizationsolutionofembeddedJavaVMbasedondirectthreadedtechnologyspeciallyforARM7pla由m.Thepe血m啪cecomparisonwasdone0nARM7pla响咖,demonstratedthebetterpe血manceofthenewsolutionoptimizedVMthanCLDCRIanddirectthreadedoptimizedVM.

Key、vords:KVM;ARM7;Javab)rtecode;directthreadedinterpreter

sun公司于2000年公布的J2ME/MIDP参考实现,采用解释执行字节码的Java虚拟机。与编译执行相比,解释执行的JVM在移动通信设备上具有显著的优点:①虚拟机占用移动通信设备非易失性存储空间比较小;②虚拟机运行时占用RAM空间比较小;③解释执行核心代码量小;④字节码占用RAM空间比较小;⑤实现难度低、可移植性好。现有的具有J2ME/MIDP支持的移动通信设备大多是基于该参考实现。

目前针对Java虚拟机有多种性能优化技术,如基于编译运行的优化技术、基于解释运行的优化技术以及一些针对内存管理与垃圾回收方面的改良算法等。而基于解释运行的优化技术在保持了解释型虚拟机结构简单、可移植性好的优点的同时,也有效地提高了解释型虚拟机的性能。

基于目前最常用的低功耗32位处理器ARM7及16位总线结构的主流手机平台,本文提出并实现了一个基于解释执行的嵌入式Java虚拟机性能优化方案。

1JaVa字节码的解释执行

Java字节码(Bytecode)在文献[1]中也被称为Java虚拟机指令集(JavaVirtualMachineInstruct咖set)。与具体的cPu指令集类似,Java字节码就是运行于Java虚拟机上的指令集。Java源程序在被执行之前,要先被编译成Java字节码,再运行于Java虚拟机上。每条Java字节码长度为一个字节(8bits),因此被称为字节码。字节码之后可能存在一个或多个字节的操作数。文献[2]详细定义了所有的标准Java字节码。

在Java虚拟机内部,采用了一个Interpreter来解释每个Byo自code的意义。如图l所示,Imerpreter是个大循环,它一直不停地从Pc所指到的内存空间抓取Bytecode,翻译成各种不同作业平台上相对应的操作,并执行这些操作。

图1字节码与解释器

字节码的执行流程如下:①为程序计数器pc赋初值,进入解释循环。②Switch指令取出pc指向的字节码,将pc加1;根

收稿日期:2005?12—25;修返日期:2006一05.11

作者简介:马嘉(1981一),女,四J|l成都人,硕士研究生,主要研究方向为嵌入式系统及其应用(xierde@hotmail.com);周明天(1939一),男,广西

人,教授,博导,主要研究方向为网络计算等;陈虹(1974.),女,四川宜宾人,讲师,主要研究方向为嵌入式Java.

 万方数据

本文来源:https://www.bwwdw.com/article/f33m.html

Top