Developer(s) | Jikes RVM Team and Contributors |
---|---|
Stable release |
3.1.4 / February 18, 2016
|
Development status | Active |
Written in | Java |
Operating system | Unix-like |
Type | Java Virtual Machine, library |
License | Eclipse Public License |
Website | www |
Jikes RVM (Jikes Research Virtual Machine) is a mature open source virtual machine that runs Java programs. Unlike most other JVMs, it is written in Java, a style of implementation termed meta-circular.
Being meta-circular Jikes RVM requires a bootstrap JVM to run upon to create a boot image. The boot image is a view of the objects Jikes RVM requires to boot created using reflection in the bootstrap JVM. A small C loader is responsible for loading the boot image at runtime.
VM Magic is where the compiler generates different code for a class than the bytecodes within that class should perform. VM Magic classes allow direct access to memory and are key to the Memory Management Toolkits performance. The VM Magic classes reside in the org.vmmagic package and have been reused in other Java projects.
The Memory Management Toolkit (MMTk) is a collection of precise garbage collectors that have been used within Jikes RVM and other projects such as the Singularity operating system and the Rotor software project. As with the rest of the Jikes RVM the implementation is in Java, but the main dependence is on VM Magic.
Either Apache Harmony or GNU Classpath class libraries can be used with Jikes RVM, with experimental support for OpenJDK's class library.
Jikes RVM uses a fast baseline compiler to quickly generate code for a particular architecture. Adaptive compilation then recompiles code with an optimizing compiler with features such as on-stack replacement (OSR). The adaptive compilation system uses a cost-benefit analysis model.
Jikes RVM's runtime has many innovative features including mechanisms for fast locking, a collaborative scheduling mechanism and support for fast exception gathering and dispatch.
The PowerPC (or ppc) and IA-32 (or Intel x86, 32-bit) instruction set architectures are supported by Jikes RVM.