This section describes the architecture of the Jikes RVM. The RVM can be divided into the following major components:
- Core runtime: (thread scheduler, class loader, library support, verifier, etc.) This component 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.