This section describes the architecture of 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.
- Magic: The mechanisms used by Jikes RVM to support low-level systems programming in Java.
- 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.