Startup Speed
Peak Throughput
JIT
AOT
Reduced Max Latency
Low Memory Footprint
Small Packaging
Slide 17
Slide 18
Native Image Build Process Input: All classes from application, libraries, and VM Application
Output: Native executable
Points-to Analysis
Ahead-of-Time Compilation
Libraries
Code in Text Section
Run Initializations JDK Substrate VM
Heap Snapshotting
Iterative analysis until fixed point is reached
Image Heap Writing
Image Heap in Data Section
GraalVM Native Image Support in the AWS SDK for Java 2.x
The test application creates an S3Client with ApacheHttpClient and sends a simple GetObjectRequest. In our testing, we measured the SDK 2.x startup time and the first request latency as well as the memory usage. https://aws.amazon.com/blogs/developer/graalvm-native-image-support-in-the-aws-sdk-for-java-2-x/
Slide 25
Writing Kubectl plugins with Scala or Java, with Fabric8 Kubernetes client on GraalVM
Rewriting a kubectl plugin from a standard Go stack to a more comfortable approach with Scala has been challenging and rewarding. We are really happy with the result, and we arguably improved it in several ways.
https://www.lightbend.com/blog/writing-kubectl-plugins-with-scala-or-java-with-fabric8-kubernetes-client-on-graalvm
Slide 26
Lightweight
Slide 27
Slide 28
Slide 29
Integration tests
Testcontainers Database
app
Kafka
API