~/talk

Fast and Compact: Reducing Size of AOT-Compiled Java Code Without Sacrificing Performance

Talkat MPLR 2025 · on Tuesday, 2025-10-14· [compilers-and-language-design]
links:none on file
links:none on file
name:Paley Li
links:none on file
links:none on file
links:none on file
slides:none on file

GraalVM Native Image executables shrink by storing rarely used methods as bytecode and running them with a lightweight interpreter, then simulating a JIT for interpreted methods that become hot; this reduces DaCapo binary sizes up to 36.9% while keeping peak performance, with only about 5% of interpreted methods needing recompilation to recover speed. The interpreter and JIT simulation add a roughly 14 MB interpreter/JIT overhead, so applications must save ~15% of machine code before the approach pays off.

AI-written summary · about

  1. 0:00AOT-compiled Java intro
  2. 1:06Why AOT Java is large
  3. 2:54Size reduction approach
  4. 4:37Execution mode heuristics
  5. 7:27Heuristics limitations
  6. 8:31Combining AOT, interpretation and JIT
  7. 10:16Simulating JIT for balance
  8. 11:40Size savings vs interpreter cost
  9. 13:07Benchmark results
  10. 14:36Related work
  11. 16:01Future research
  12. 17:27Summary
  13. 17:48Q&A: JIT vs AOT sizes
  14. 18:53Q&A: Reducing file size
  15. 20:17Q&A: Server vs device use
  16. 20:38Q&A: JIT code generation
  17. 21:41Q&A: Compiled code storage
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.