Java Runtime Systems Characterization and Architectural Impl
The Java Virtual Machine (JVM) is the corner stone of Java technology, and its e ciency in executing the portable Java bytecodes is crucial for the success of this technology. Interpretation, Just-In-Time (JIT) compilation, and hardware realization are wel
Java Runtime Systems: Characterization and Architectural ImplicationsR. Radhakrishnany, N. Vijaykrishnanz, L. K. Johny, A. Sivasubramaniamz, J. Rubioy and J. SabarinathanyyLaboratory for Computer Architecture Dept. of Electrical and Computer Engineering The University of Texas at Austin Austin, TX 78712jrubio, sabarina@ece.utexas.edu
fradhakri,ljohn,
g
z220 Pond Lab Dept. of Computer Science and Engineering The Pennsylvania State University University Park, PA 16802. fvijay,anandg@cse.psu.edu
The Java Virtual Machine (JVM) is the corner stone of Java technology, and its e ciency in executing the portable Java bytecodes is crucial for the success of this technology. Interpretation, Just-In-Time (JIT) compilation, and hardware realization are well known solutions for a JVM, and previous research has proposed optimizations for each of these techniques. However, each technique has its pros and cons and may not be uniformly attractive for all hardware platforms. Instead, an understanding of the architectural implications of JVM implementations with real applications, can be crucial to the development of enabling technologies for e cient Java runtime system development on a wide range of platforms. Towards this goal, this paper examines architectural issues, from both the hardware and JVM implementation perspectives. The paper starts by identifying the important execution characteristics of Java applications from a bytecode perspective. It then explores the potential of a smart JIT compiler strategy that can dynamically interpret or compile based on associated costs, and investigates the CPU and cache architectural support that would bene t JVM implementations. We also study the available parallelism during the di erent execution modes using applications from the SPECjvm98 benchmarks. At the bytecode level, it is observed that less than 45 out of the 256 bytecodes constitute 90% of the dynamic bytecode stream. Method sizes fall into a tri-nodal distribution with peaks of 1, 9 and 26 bytecodes across all benchmarks. The architectural issues explored in this study shows that when Java applications are executed with a JIT compiler, selective translation using good heuristics can improve performance, but the saving is only 10-15% at best. The instruction and data cache performance of Java applications are seen to be better than that of C/C++ applications, except in the case of data cache performance in the JIT mode. Write misses resulting from installation of JIT compiler output dominate the misses and deteriorate the data cache performance in JIT mode. A study on the available parallelism shows that Java programs executed using JIT compilers have parallelism comparable to C/C++ programs for small window sizes, but falls behind when the window size is increased. Java programs executed using the interpreter have very little parallelism due to the stack nature of the JVM instruction set, which is dominant in the interpreted execution mode. In additio
n, this work gives revealing insights and architectural proposals for designing an e cient Java runtime system.A preliminary version of this paper appeared in the International Conference on High Performance Computers and Architecture (HPCA-6)
Abstract
The Java Virtual Machine (JVM) is the corner stone of Java technology, and its e ciency in executing the portable Java bytecodes is crucial for the success of this technology. Interpretation, Just-In-Time (JIT) compilation, and hardware realization are wel
1 IntroductionThe Java Virtual Machine (JVM) 1] is the corner stone of Java technology epitomizing the\writeonce run-anywhere" promise. It is expected that this enabling technology will make it a lot easier to develop portable software and standardized interfaces that span a spectrum of hardware platforms. The envisioned underlying platforms for this technology include powerful (resource-rich) servers, network-based and personal computers, together with resource-constrained environments such as hand-held devices, specialized hardware/embedded systems, and even household appliances. If this technology is to succeed, it is important that the JVM provides an e cient execution/runtime environment across these perse hardware platforms. This paper examines di erent architectural issues, from both the hardware and JVM implementation perspectives, towards this goal. Applications in Java are compiled into the byte code format to execute in the Java Virtual Machine (JVM). The core of the JVM implementation is the execution engine that executes the byte codes. This can be implemented in four di erent ways: 1. An interpreter is a software emulation of the virtual machine. It uses a loop which fetches, decodes and executes the byte codes until the program ends. Due to the software emulation the Java interpreter has an additional overhead and executs more instructions than just the bytecodes. 2. A Just-in-time (JIT) compiler is an execution model which tries to speed up the execution of interpreted programs. It compiles a Java method into native instructions on the y and caches the native sequence. On future references to the same method, the cached native method can be executed directly without the need for interpretation. JIT compilers have been released by many vendors like IBM 2], Symantec 3] and Microsoft. Compiling during program execution, however, inhibits aggressive optimizations because compilation must only incur a small overhead. Another disadvantage of JIT compilers is the two to three times increase in the object code, which becomes critical in memory constrained embedded 2
The Java Virtual Machine (JVM) is the corner …… 此处隐藏:37260字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




