Language Runtimes · Cluster

JIT Compilation

Profiling, tiering, and speculative optimization.

  1. 01 Interpreter Dispatch Overhead and the Cost That Justifies Compilation Why a bytecode interpreter spends most of its cycles on dispatch rather than on the program, and how that per-instruction cost sets the break-even point for compiling code at run time. foundational · Jun 27, 2022
  2. 02 Hot Code Detection with Invocation and Back-Edge Counters How runtimes decide that a function or loop is worth compiling, why method entries and loop back edges need separate counters, and what the counter arithmetic gets wrong. foundational · Dec 8, 2025
  3. 03 Tiered Compilation and On-Stack Replacement Why runtimes compile the same method more than once, how a frame in the middle of an interpreted loop moves into optimized code, and what the transfer must reconstruct. foundational · Sep 23, 2025
  4. 04 Type Feedback and Inline Caches in Dynamic Call Sites How a runtime records which types actually reach a polymorphic operation, how an inline cache turns that history into a few comparisons, and why monomorphic feedback changes what the compiler can generate. intermediate · Nov 18, 2024
  5. 05 Speculative Inlining and Guard Placement How an optimizing JIT inlines a callee it cannot prove is the right target, what the guard costs, and why the number of guards rather than the amount of inlining sets the limit. intermediate · Mar 27, 2025
  6. 06 Deoptimization and Frame State Reconstruction What must be rebuilt when compiled code abandons a speculative assumption, how the compiler describes frame state at each guard, and why the metadata is the expensive part of the mechanism. intermediate · Oct 8, 2025
  7. 07 Compilation Budgets and Recompilation Policy How a runtime bounds the CPU it spends compiling, what triggers a second compilation of code that already compiled, and why unbounded recompilation is a denial-of-service on the application itself. intermediate · Jan 16, 2023
  8. 08 Code Cache Management and Invalidation How generated code and its metadata are stored, why stale code must be retired rather than deleted, and how a runtime finds every compiled method that depended on a class it can no longer trust. advanced · Apr 6, 2026
  9. 09 Sample-Based Profiling and Stack Walking in Compiled Code How a runtime learns where time goes by interrupting threads rather than instrumenting them, what a walk over compiled frames must decode, and why sampled profiles are biased in ways counters are not. advanced · May 10, 2023
  10. 10 Escape Analysis and Scalar Replacement in Compiled Code How a JIT proves an allocation never leaves its method, why replacing an object with its fields is only safe while guards hold, and what makes the proof fail in practice. advanced · Sep 12, 2022