Initialize Once, Start Fast: Application Initialization at Build Time
Arbitrary program extension at run time in language-based VMs, e.g., Java's dynamic class loading, comes at a startup cost: high memory footprint and slow warmup.
Cloud computing amplifies the startup overhead.
Microservices and serverless cloud functions lead to small, self-contained applications that are started often.
Slow startup and high memory footprint directly affect the cloud hosting costs, and slow startup can also break service-level agreements.
Many applications are limited to a prescribed set of pre-tested classes, i.e., use a closed-world assumption at deployment time.
For such Java applications, GraalVM Native Image offers fast startup and stable performance.
GraalVM Native Image uses a novel iterative application of points-to analysis and heap snapshotting, followed by ahead-of-time compilation with an optimizing compiler.
Initialization code can run at build time, i.e., executables can be tailored to a particular application configuration.
Execution at run time starts with a pre-populated heap, leveraging copy-on-write memory sharing.
We show that this approach improves the startup performance by up to two orders of magnitude compared to the Java HotSpot VM, while preserving peak performance.
Fri 25 Oct
|14:00 - 14:22|
Ahmet CelikThe University of Texas at Austin, Pengyu NieThe University of Texas at Austin, Chris RossbachThe University of Texas at Austin and VMware Research Group, Milos GligoricThe University of Texas at AustinDOI
|14:22 - 14:45|
Christian WimmerOracle Labs, Codrut StancuOracle Labs, Peter HoferOracle Labs, Vojin JovanovicOracle Labs, Paul WögererOracle Labs, Peter B. KesslerOracle Labs, Oleg PlissOracle Labs, Thomas WuerthingerOracle LabsDOI Pre-print
|14:45 - 15:07|
|Link to publication DOI File Attached|
|15:07 - 15:30|