Graal Without Truffle
summary
Argues that Graal’s benefits can be reaped without adopting Truffle by using JVM techniques: invokedynamic, aggressive inlining, partial escape analysis, and object-shaping in JRuby’s compiler pipeline. Presents benchmarks (Mandelbrot, hashing, red‑black tree, ActiveRecord) showing JRuby on Graal sometimes matches Truffle Ruby and on Rails runs 5–10× faster than current Truffle builds. Describes building an IR-to-bytecode pipeline, ~241k Java SLOC in JRuby, a custom Graal pass prototype that virtualizes objects and noticeably improves optimization.
AI-written summary · about
chapters (23)
- 0:00Intro
- 1:23What's In This Talk
- 2:56What's Not In This Talk
- 4:02JRuby Review
- 7:10Dynamic Everything
- 8:51Numeric Boxing
- 11:21Transient Data Structures
- 14:44Frame Access
- 19:35Array#each
- 20:07Java Challenges
- 25:21Why Use Truffle?
- 32:23Truffle Ruby Timeline
- 34:05Different Direction?
- 41:01Optimizing JRuby
- 42:44Object Shaping
- 44:59Frame Elimination
- 47:01Pure-Ruby Hashing
- 49:39Versus Truffle Ruby
- 50:04Warmup Curve: JRuby
- 50:26Performance Notes
- 50:59Life as a JVM Language
- 52:45JRuby + Truffle?
- 53:34Summary
related talks
54mDeveloper's Introduction to GraalVM
31mSimplifying and Optimizing Life on the Edge with Graal
47mThe need for speed. What is GraalVM and how can it help you?
50mOne VM to Rule Them All
52mPolyglot on the JVM with Graal: One VM for Java, node.js, Ruby, R, and C++!
20mGraalVM: Run Programs Faster Anywhere
40mThe need for speed. What is GraalVM and how can it help you?
59mGraalVM: Run Programs Faster Anywhere
