一个基于混合并发模型的Java虚拟机_杨博.docVIP

一个基于混合并发模型的Java虚拟机_杨博.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个基于混合并发模型的Java虚拟机_杨博

一个基于混合并发模型的 Java 虚拟机 杨 博, 王鼎兴, 郑纬民 (清华大学 计算机科学与技术系,北京 100084) E-mail: yangbo1997@ 摘要: 从解释执行到及时编译的转变极大地提高了Java 程序的运行速度.但是,现有的Java 虚拟机还有待进一步的 改进.提出了一种新的 Java 虚拟机编译与执行模型——混合并发模型 HCCEM(hybrid concurrent compilation and execution model).该模型通过多线程控制方式将字节码的编译与执行过程相重叠,从而获取加速的效果.另外还给出 了基于 HCCEM 的 Java 虚拟机 JAFFE 的设计方案,并就实现中的执行模式切换、异常处理以及层次线程等问题进 行了讨论.实验结果表明,HCCEM 能够有效地提高 Java 程序的执行速度. 关 键 词: 混合并发;Java 虚拟机;异常处理;多线程 中图法分类号: TP311 文献标识码: A Java 语言的平台无关性和严格的安全性检查措施以及字节码的精简性都使得 Java 语言成为网络计算最具 前途的编程语言.然而,Java 与 C,C++以及 Fortran 等语言相比的低性能成为阻碍其发展的重要因素.为了提高 Java 程序的运行速度,人们提出了及时编译技术 JIT(just-in-time) [1] ,通过在运行时将字节码编译成本地的机器 指令来提高 Java 的运行效率,从而大大缩小了与其他语言的性能差距.现在绝大多数的 Java 虚拟机中都采用了 及时编译技术. 虽然及时编译是一种十分有效的技术,但是它仍然有值得改进的地方.本文提出了一种新的 Java 程序执行 模式 — — 混合并发模式 HCCEM(hybrid concurrent compilation and execution model).作为解释和及时编译的一 种混合体,基于 HCCEM 的 Java 虚拟机通过编译和执行并发与重叠来提高 Java 程序在运行时的性能.本文第 1 节描述混合并发模型.第2节给出基于 HCCEM的Java虚拟机 JAFFE的设计方案.第3节就基于HCCEM的Java 虚拟机实现中的一些关键问题进行讨论.实验结果在第 4 节给出.最后是本文的总结和进一步工作介绍. 1 混合并发模型 HCCEM 在一个基于 JIT 的 Java 虚拟机中,编译模块以类似于中断处理例程的方式进行工作.当一个程序在执行过 程中遇到一个尚未编译的方法时,程序的执行将被暂停同时编译模块被激活,开始对该方法的编译.只有等到编 译模块生成了所需的本地代码之后,程序的执行才会被恢复,所以,在基于及时编译模式的Java 虚拟机中不存在 对字节码的解释执行. HCCEM 是在连续编译 [2] 思想的基础上提出来的,它与及时编译模式在以下两个方面存在不同:(1) 混合并 发编译模式中的编译过程由另外一个独立的线程来控制,因此可以与程序的执行并发地进行,而不像在 JIT 中 那样被间歇性地激活.所谓并发是指编译与执行可以并发进行;(2) 与 JIT 在执行模式上的单一性不同,混合并发编译模式中保留了解释执行模块,因此能够在及时编译后执行和解释执行之间作出选择.所谓混合是指程序 在运行过程中可能同时出现解释执行和编译生成的本地码执行两种状态.程序在 JIT 下的执行方式与在 HCCEM 下的执行方式的区别如图 1 所示. (a) JIT (b) HCCEM T: compiling ① , E: native code execution ② , I: interpreting ③ , W: waiting ④ . ①编译,②本地码执行,③解释执行,④等待. Fig.1 Difference of execution mode between JIT and HCCM 图 1 程序在 JIT 和 HCCM 模式下执行方式的不同 根据混合并发模式在结构上的特点,与及时编译模式相比,它具有以下优势: (1) 对于某些方法而言,解释执行的性能可能要好于及时编译 [3] .基于 HCCEM 的 Java 虚拟机由于保留了解 释执行模块,可以在解释和编译后执行之间进行权衡,以选择较优的执行方式. (2) 现有的基于 JIT 的 Java 虚拟机中采用单线程控制方式,因而无法充分利用底层平台的计算资源.随着 SMP 工作站的普及,HCCEM 的多线程控制方式能很好地支持多处理器系统.即使是在单处理器系统中,也可以 利

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档