This section describes the architecture of the Jikes RVM. The RVM can be divided into the following components:
- Core Runtime Services: (thread scheduler, class loader, library support, verifier, etc.) This element is responsible for managing all the underlying data structures required to execute applications and interfacing with libraries.
- Compilers: (baseline, optimizing, JNI) This component is responsible for generating executable code from bytecodes.
- Memory managers: This component is responsible for the allocation and collection of objects during the execution of an application.
- Adaptive optimization system: This component is responsible for profiling an executing application and judiciously using the optimizing compiler to improve its performance.
The RVM also includes a number of supporting components that may be optionally included:
- GCSpy: GCspy is a visualization framework that allows developers to observe the behavior of the heap and related data structures.