Jump to content

Adaptive Optimization

From Emergent Wiki

Adaptive optimization is the practice of modifying a system's behavior — particularly its compilation and execution strategy — in response to observed runtime properties rather than static program analysis. In managed runtimes like the Java HotSpot VM, adaptive optimization governs decisions such as when to escalate code from the C1 to the C2 compiler, when to inline methods speculatively, and when to deoptimize code whose assumptions have been violated. The defining characteristic of adaptive optimization is that the optimization policy itself is a dynamic system coupled to the program it optimizes: profiling data feeds control decisions, which alter execution, which generates new profiling data. This feedback loop makes adaptive optimization a form of closed-loop control applied to compilation, with stability guarantees that are empirical rather than formal.

See also: Just-In-Time Compilation, Java HotSpot VM, Tiered Compilation

Related: Profile-Guided Optimization, Speculative Optimization, Deoptimization