Lightweight cloud-native Java applications
In this short note, we want to visualize the benefits GraalVM native images offer you.
Several projects have accepted GraalVM Native Image as a platform for their applications: Quarkus, Micronaut, Helidon — support GraalVM native images. Spring Framework recently announced the upcoming support for native images.
We measured startup and memory footprint of a basic microservice in Helidon, Quarkus, and Micronaut and here are the results we got.
Let’s start with the startup time. GraalVM native images allow any framework to start up in milliseconds. While there are differences in the exact measurements between the implementations, the largest portion of the benefits are coming from using native images.
We see similar results when we measure memory footprint, which on the graph below is the full RSS of the process. Again, for all frameworks GraalVM native images significantly reduce the runtime memory requirements compared to running on HotSpot.
We believe that GraalVM native images can become the best way for deploying cloud native applications and we are excited to see many in the ecosystem believing the same. While we continue to work on enabling easier configuration and broader support for the existing libraries, already now GraalVM native images can be used with several web-application frameworks and significantly improve their startup times and runtime memory usage.
More information about getting started with GraalVM native images can be found on the GraalVM website.
When you download GraalVM binaries: graalvm.org/downloads, check out these helpful links to the getting started guides for the frameworks we looked at: