Nashorn for Java 9
summary
Nashorn for Java 9 replaces eager bytecode emission with a lightweight interpreter that collects type profiles and triggers JIT only on hot paths, keeping optimistic primitive specializations but avoiding massive class and bytecode churn at startup. Measurements show orders-of-magnitude fewer bytes of bytecode and far fewer classes installed during warmup, faster time-to-steady-state than before, and targeted fixes—OSR via program points, call-site caching, and allocation-site hints—that amortize the cost of optimistic types and deliver reduced startup overhead.
AI-written summary · about
chapters (18)
- 0:00Start
- 5:10Recap
- 8:05Type Optimization
- 8:56Runtime Overhead
- 11:06Code Caching
- 11:45Optimistic Types
- 17:30Dual Fields
- 18:59Native Methods
- 20:56Octane Benchmarks
- 24:35Nightmare Use Cases
- 25:49Web Bug Reports
- 35:21Control Flow
- 42:56Stack Trace and Security
- 44:46Security
- 45:39Bytecode
- 46:35Caching Mechanisms
- 49:28Results
- 51:36Execution Overhead
related talks
57mNashorn War Stories: Dynamic Language Performance on the JVM
45mNashorn: implementing a dynamic language runtime on JVM in 2014
41mNashorn Under the Hood: Making This Rhinoceros Thunder
50mNashorn - what's all the fuss about
01h 01mNashorn ... In Enterprise Applications
48mJava 9 Performance
48mThe Next Generation of Java Runtimes
33mCloud Native Java with OpenJ9: Fast, lean and definitely mean
