Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序的虚拟机,其早期版本与当前版本分别在通用公共许可证(英语:Common Public License)(CPL)与Eclipse公共许可证(EPL)下开放代码。与其他以Java编写的虚拟机不同的是,Jikes RVM采用了元循环技术。
Jikes RVM采用了元循环技术,因而其需要运行在一个引导Java虚拟机(JVM)上来创建启动镜像。启动镜像在运行时由一个小型的C装入程序加载,其本质是Jikes RVM启动必须的对象的集合,这些对象则是利用引导JVM的反馈所创建。
编译器在VM Magic里为一个类别生成不同的代码(而非字节码)。VM Magic类别允许对内存的直接访问,是影响内存管理工具包的性能的关键所在。VM Magic类别被包含于org.vmmagic包内,同时也为其他的Java项目所使用。
内存管理工具包(MMTk)是在Jikes RVM与其他项目(如Singularity系统和Rotor软件项目)都有使用的垃圾精确回收器的一个集合。正如Jikes RVM其他部件一样,MMTk是用Java实现的,但主要还是依赖于VM Magic。
Jikes RVM已经可以使用Apache Harmony与GNU Classpath类库,对OpenJDK类库的实验性支持也已加入。
Jikes RVM使用基线编译器来快速地为特定的架构生成代码,而后的动态自适应编译利用带有如栈替换等特性的优化编译器重编译代码,其中动态自适应编译系统使用成本-收益分析模型(英语:Cost–benefit analysis)。
Jikes RVM的运行时有着许多新颖的特性,例如快速锁定机构,协作调度机构以及对异常的快速收集与调度的支持。
Jikes RVM可以支持使用Power PC(即ppc)与IA-32(即x86)指令集的处理器。
正如其名所示,Jikes RVM是个研究项目,因而功能侧重于用于研究新技术。
Jikes RVM也出现在了07、08、10、11年的Google编程之夏比赛中。