Erjang With the JVM under the Hood
summary
Erjang compiles BEAM modules to JVM bytecode at load time and runs OTP (shell, inet, distribution, NIFs) on Java 7, using Kilim bytecode rewriting for coroutine-style processes and a trampoline for tail calls. Measured sequential code runs 2–10× faster than BEAM, a 10,000-node ring benchmark drops from ~12µs to ~2.8µs per message as the JVM JIT warms up, but global GC pauses and a minimal scheduler hurt latency and multicore scaling. Code reloading uses per-module classloaders; Elixir runs ~98% of tests.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:35ABOUT FOUR YEARS AGO...
- 2:32HIGHLIGHTS
- 6:18JAVA / JVM "CONS"
- 14:08RING: 100.000 PROCESSES
- 16:18JIT COMPILER
- 27:00ERJANG TYPES
- 28:44TYPE/FLOW ANALYSIS
- 30:03ENCODING PROCESSES
- 41:24ELIXIR IS MY HOPE FOR ADOPTION
- 42:49MAKING ELIXIR RUN
- 44:24RUNNING ELIXIR
related talks
54mLeading Edge! Changing the Java World
52mGraalVM: Run Programs Faster Anywhere
31mSimplifying and Optimizing Life on the Edge with Graal
35mJava at Speed: Building a Better JVM
48mOne VM To Rule Them All
42mLeveraging the Modern JVM: How JVM Languages Benefit from Loom, Panama, and More
50mOne VM to Rule Them All
47mBeyond JVM: How the Platform is Evolving for new Languages & Features
