Jikes研究虚拟机

Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序虚拟机,其早期版本与当前版本分别在通用公共许可证英语Common Public License(CPL)与Eclipse公共许可证(EPL)下开放代码。与其他以Java编写的虚拟机不同的是,Jikes RVM采用了元循环技术。

Jikes研究虚拟机
开发者Jikes RVM Project Organization
当前版本3.1.3(2013年2月12日,​11年前​(2013-02-12
源代码库 编辑维基数据链接
编程语言Java
操作系统类Unix系统
类型Java虚拟机
许可协议Eclipse公共许可证
网站jikesrvm.org

历史

  • 1999至2000年间,IBM研究人员发布了关于Jikes RVM的新特性的研究资料,一些大学也获得阅览Jikes RVM源代码的权利。
  • 2001年10月,Jikes RVM 2发布,并以通用公共许可证(CPL)开放源代码。2.0版支持PowerPCIntel架构,而且也支持许多不同的垃圾回收算法。
  • 2004年,2.4版发布,这一版本的设计尤其注重于用以运行Eclipse,而稳定性与性能也较之前有一定程度的提高。
  • 2007年,2.9版开始开发,此版重写大量代码来利用Java5.0的新特性并使用了蚂蚁系统。
  • 2008年,3.0版发布,这标志了2.9版开发的完结,Jikes RVM的代码基底也再次趋于稳定。
  • 2009年,3.1版以Eclipse公共许可证(EPL)发布,此版相对于3.0.1版性能大幅提升,并且提供了对原生线程的切换支持。

特性

引导

Jikes RVM采用了元循环技术,因而其需要运行在一个引导Java虚拟机(JVM)上来创建启动镜像。启动镜像在运行时由一个小型的C装入程序加载,其本质是Jikes RVM启动必须的对象的集合,这些对象则是利用引导JVM的反馈所创建。

VM Magic

编译器在VM Magic里为一个类别生成不同的代码(而非字节码)。VM Magic类别允许对内存的直接访问,是影响内存管理工具包的性能的关键所在。VM Magic类别被包含于org.vmmagic包内,同时也为其他的Java项目所使用。

内存管理工具包

内存管理工具包(MMTk)是在Jikes RVM与其他项目(如Singularity系统和Rotor软件项目[1])都有使用的垃圾精确回收器的一个集合。正如Jikes RVM其他部件一样,MMTk是用Java实现的,但主要还是依赖于VM Magic。

类库

Jikes RVM已经可以使用Apache HarmonyGNU Classpath类库,对OpenJDK类库的实验性支持也已加入。

编译器

Jikes RVM使用基线编译器来快速地为特定的架构生成代码,而后的动态自适应编译利用带有如栈替换等特性的优化编译器重编译代码,其中动态自适应编译系统使用成本-收益分析模型英语Cost–benefit analysis

运行时

Jikes RVM的运行时有着许多新颖的特性,例如快速锁定机构,协作调度机构以及对异常的快速收集与调度的支持。

处理器支持

Jikes RVM可以支持使用Power PC(即ppc)与IA-32(即x86)指令集的处理器

研究

正如其名所示,Jikes RVM是个研究项目,因而功能侧重于用于研究新技术[2]

Jikes RVM也出现在了07、08、10、11年的Google编程之夏比赛中[3]

参考

  1. ^ Jikes RVM Project Proposals 2009. [2011-10-25]. (原始内容存档于2012-04-25). 
  2. ^ "Jikes RVM research papers". [2011-10-23]. (原始内容存档于2011-10-02). 
  3. ^ Jikes RVM - Google Summer of Code 2011. [2011-10-23]. (原始内容存档于2011-10-02). 

外部链接