Skip to main content

Understanding the GraalVM Native Image Build Process

UA2.118 (Henriot) | Day 1 | 18:30 - 18:55 | Speakers: Tom Shull

Understanding the GraalVM Native Image Build Process
A picture of a devroom at FOSDEM 2024
Open in browser

Notes

Abstract

GraalVM Native Image is a popular tool for building standalone executables from Java applications. It is able to generate executables with fast startup time and low memory footprint through the use of a closed world assumption, constraints on dynamism, and many traditional compiler optimizations.

Unfortunately, Native Image's many advanced features can make its build process inscrutable to an inexperienced developer. It is hard to decipher how its many internal components (e.g. analysis, compiler phases, plugins, intrinsics, features, singletons, substitutions, etc.) work in concert and what assumptions must not be violated.

In this talk I will attempt to help make sense of the Native Image build process. I will first describe what components exist and how they interact with each other. Next, I will walk through a native image build and highlight key phases of the process. Finally, I will provide some practical tips to follow when trying to learn more about specific functionality within Native Image.

Attachments

Speakers

Tom Shull

Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.