Wed 5 Mar 2025 12:20 - 12:40 at Casuarina Ballroom - Runtime & System Tools

With the increasing popularity of Serverless computing and Function as a Service—where typical workloads have a short lifetime—the research community is increasingly focusing on startup performance optimization. To reduce the startup time of managed language runtime systems, related work proposes strategies to move runtime environment initialization ahead-of-time. For instance, GraalVM Native Image allows one to create a binary file from a Java application that embeds a snapshot of the pre-initialized heap memory and can run without instantiating a Java Virtual Machine. However, the program startup needs to be further optimized, because the cloud runtime often starts the program while responding to the request. Thus, the program startup time impacts the service-level agreement.

In this paper, we improve the startup time of Native-Image binaries by changing their layout during compilation, reducing I/O traffic. We propose a profile-guided binary-reordering approach and a profiling methodology to obtain the execution-order profiles of methods and objects. Thanks to these profiles, we first reduce page faults related to the code section. Then, we propose three ordering strategies to reduce page faults related to accessing the objects in the heap snapshot. Since the object identities and the heap-snapshot contents are not persistent across Native-Image builds of the same program, we propose a method of matching objects from the profile against the objects in the profile-guided build. Experimental results show that our ordering strategies lead to an average page-fault reduction factor of $1.65\times$ when using a Solid-state Drive (SSD), and of $1.68\times$ when using Network File System (NFS). This reduction results in an average execution-time speedup of $1.59\times$ (SSD) and $1.58\times$ (NFS).

Wed 5 Mar

Displayed time zone: Pacific Time (US & Canada) change

11:40 - 13:00
Runtime & System ToolsMain Conference at Casuarina Ballroom
11:40
20m
Talk
Honey Potion: an eBPF Backend for Elixir
Main Conference
Kael Soares Augusto UFMG, Vinícius Pacheco Cadence, Marcos A. M. Vieira Universidade Federal de Minas Gerais, Rodrigo G. Ribeiro Federal University of Ouro Preto, Fernando Magno Quintão Pereira Federal University of Minas Gerais
12:00
20m
Talk
GoFree: Reducing Garbage Collection via Compiler-inserted Freeing
Main Conference
Haoran Peng University of Science and Technology of China, Yu Zhang University of Science and Technology of China, Michael D. Ernst University of Washington, Jinbao Chen University of Science and Technology of China, Boyao Ding University of Science and Technology of China
DOI
12:20
20m
Talk
Improving Native-Image Startup Performance
Main Conference
Matteo Basso Università della Svizzera italiana (USI), Aleksandar Prokopec Oracle Labs, Andrea Rosà USI Lugano, Walter Binder USI Lugano
12:40
20m
Talk
Speeding up the Local C++ Development Cycle with Header Substitution
Main Conference
Nader Al Awar The University of Texas at Austin, Zijian Yi The University of Texas at Austin, George Biros The University of Texas at Austin, Milos Gligoric The University of Texas at Austin