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 can be optionall included:
- GCSpy: GCspy is a visualisation framework that allows developers to observe the behaviour of the heap and related data structures.