Efficient Late Binding of Dynamic Function Compositions
summary
Implements late binding by compiling per-callsite “collagraphs” into JVM MethodHandle trees and using invokeDynamic plus combinators to inline role lifting and role-specific wrappers; evaluation on ~5 million rules with 2.25 million transaction iterations yields a 2.8x steady-state speedup over the baseline while suffering up to a 9.8x worst-case slowdown under frequent invalidations. Uses runtime metadata and partial evaluation to prune dispatch graphs, builds and inlines call plans at runtime, and reports that plan invalidation and JVM deoptimization are the main remaining bottlenecks.
AI-written summary · about
chapters (11)
- 0:00Start
- 2:24Controlling Roles
- 4:50Function Composition in Object Teams
- 6:13Semantic Gap
- 7:14Object Teams Compilers
- 9:38Dispatch Plans
- 12:47Signature Polymorphic Call Sites
- 14:42Runtime Compilation of Call Graph
- 15:42Evaluation
- 16:34Steady-State Performance
- 22:28Performance Results
related talks
30mOn Automating Hybrid Execution of Ahead-of-Time and Just-in-Time Compiled Code
26mAn Analysis of Compiled Code Reusability in Dynamic Compilation
01h 01mThe Static Dynamic JVM – A Many Layered Dive
25mHybrid Execution: Combining Ahead-of-Time and Just-in-Time Compilation
01h 21mNon-local compiler transformations in the presence of dynamic dispatch
47mThe Invocation Game
57mLet's Talk About Invokedynamic
43mMethodHandles Everywhere
