- Why GraalVM?
- Getting Started
- Container Images
- Java Performance Examples
- Java Stream API Example
- Polyglot Node.js Example
- Native Image Examples
- Java/Kotlin Native Image Example
- Reference Manuals
- Debugging and Monitoring Tools
- GraalVM as a Platform
- Security Guide
- Release Notes
Simple Java Stream Benchmark
This application is a small benchmark of the Java Stream API. It demonstrates how the GraalVM compiler can achieve better performance for highly abstracted programs like those using Streams, Lambdas, or other Java features.
This example requires the Maven build tool.
1. Download or clone the repository and navigate into the
git clone https://github.com/graalvm/graalvm-demos cd graalvm-demos/java-simple-stream-benchmark
2. Build the benchmark. You can manually execute
mvn package, but there is also
build.sh script included for your convenience:
3. Export the GraalVM home directory as the
$GRAALVM_HOME and add
to the path, using a command-line shell for Linux:
Now you are all set to execute the benchmark and compare the results between different JVMs.
Running the Benchmark #
To run the benchmark, you need to execute the
You can run it with the following command:
java -jar target/benchmarks.jar
If you would like to run the benchmark on a different JVM, you can run it with
java you have. However, if you just want to run it on the same JVM,
but without the GraalVM compiler, you may add the
into the same command:
java -XX:-UseJVMCICompiler -jar target/benchmarks.jar
This way, the GraalVM compiler will not be used as the JVMCI compiler and the JVM will use its default one.
Note about Results #
The benchmark mode is
AverageTime in nanoseconds per operation, which means
lower numbers are better. Note that the results you see can be influenced by the
hardware you are running this benchmark on, the CPU load, and other factors.
Interpret them responsibly.