Java and JVM

Any JVM-based application that runs on Java HotSpot VM can run on GraalVM. GraalVM is based on Java HotSpot VM, but integrates an advanced just-in-time (JIT) compiler, written in Java - the Graal compiler. At runtime, the application is loaded and executed normally on the JVM. The JVM passes bytecode to the Graal compiler, which compiles that to the machine code and returns it to the JVM.

GraalVM’s dynamic compiler can improve the efficiency and the speed of applications written in Java, Scala, Kotlin, or other JVM languages through unique approaches to code analysis and optimization. For example, it assures performance advantages for highly abstracted programs due to its ability to remove costly object allocations. To learn more, go to the Graal compiler page. The open source compiler’s code is available on GitHub.

Compiler Operating Modes

There are two operating modes of Graal when used as a HotSpot JIT compiler:


In addition to running JVM-based languages on GraalVM, you can also call any other language implemented with the Truffle language implementation framework directly from Java. See the Polyglot Programming and Embedding Languages guides for more information about interoperability with other programming languages.