Jikes研究虚拟机
此条目需要扩充。 (2011年10月23日) |
Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序的虚拟机,其早期版本与当前版本分别在通用公共许可证(CPL)与Eclipse公共许可证(EPL)下开放代码。与其他以Java编写的虚拟机不同的是,Jikes RVM采用了元循环技术。
开发者 | Jikes RVM Project Organization |
---|---|
当前版本 | 3.1.3(2013年2月12日 | )
源代码库 | |
编程语言 | Java |
操作系统 | 类Unix系统 |
类型 | Java虚拟机 |
许可协议 | Eclipse公共许可证 |
网站 | jikesrvm |
历史
- 1997年11月,Jalapeño项目作为IBM沃森研究中心的一个内部项目启动。
- 1999至2000年间,IBM研究人员发布了关于Jikes RVM的新特性的研究资料,一些大学也获得阅览Jikes RVM源代码的权利。
- 2002年,2.2版发布,该版的垃圾精确回收器用流行的内存管理工具包重构。
- 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 Harmony与GNU Classpath类库,对OpenJDK类库的实验性支持也已加入。
- 编译器
Jikes RVM使用基线编译器来快速地为特定的架构生成代码,而后的动态自适应编译利用带有如栈替换等特性的优化编译器重编译代码,其中动态自适应编译系统使用成本-收益分析模型。
- 运行时
Jikes RVM的运行时有着许多新颖的特性,例如快速锁定机构,协作调度机构以及对异常的快速收集与调度的支持。
- 处理器支持
Jikes RVM可以支持使用Power PC(即ppc)与IA-32(即x86)指令集的处理器。
- 研究
正如其名所示,Jikes RVM是个研究项目,因而功能侧重于用于研究新技术[2]。
Jikes RVM也出现在了07、08、10、11年的Google编程之夏比赛中[3]。
参考
- ^ Jikes RVM Project Proposals 2009. [2011-10-25]. (原始内容存档于2012-04-25).
- ^ "Jikes RVM research papers". [2011-10-23]. (原始内容存档于2011-10-02).
- ^ Jikes RVM - Google Summer of Code 2011. [2011-10-23]. (原始内容存档于2011-10-02).
外部链接
- Jikes RVM在SourceForge的项目 (页面存档备份,存于互联网档案馆) (英文)
- DaCapo Benchmarks (页面存档备份,存于互联网档案馆) (英文)
- WALA (页面存档备份,存于互联网档案馆) (英文)
- PearColator (英文)
- IBM DevelopWorks中Jikes RVM的介绍 (页面存档备份,存于互联网档案馆) (中文)