Static Java, GraalVM Native and OpenJDK
summary
GraalVM Native compiles Java apps into single static executables to get ultra-fast startup and low memory footprint by aggressive closure analysis, build-time initialization and code pruning, but that forces many runtime behaviors to be approximated or patched. Experiments include a reduced libjvm, an ELF code cache generation that runs bootstrap code successfully, CI-level closure work, and an image heap plan; a fragile re-initialization hack (filesystem substitution and other JDK rewrites) fixes some mismatches but risks subtle semantic and security divergence.
AI-written summary · about
chapters (15)
- 0:00Introduction and speaker
- 2:04Defining static Java
- 3:07Java dynamic nature
- 5:43Challenges of static deployment
- 8:44Evolving state space
- 12:55Build time analysis
- 15:57Initialization challenges
- 20:15Build time execution issues
- 27:57GraalVM and native images
- 30:55Performance benefits
- 34:23Graal substitutions
- 41:17Optimizations
- 45:34Project Leyden goals
- 47:17Leyden implementation
- 55:36Conclusion and Q&A
related talks
44mJava In The Cloud with GraalVM
31mGraalVM native images explained
42mJava in the Cloud with GraalVM
20mMaximizing Java Application Performance with GraalVM
47mBring the action: using GraalVM in production
03h 07mEverything you need to know about GraalVM
52mGraalVM native images explained
44mSelf-contained Native Binaries for Java with GraalVM
