Adaptive optimization

Adaptive optimization is a technique in computer science that performs dynamic recompilation of portions of a program based on the current execution profile.

With a simple implementation, an adaptive optimizer may simply make a trade-off between just-in-time compilation and interpreting instructions.

Examples of adaptive optimization include HotSpot and HP's Dynamo system.

[1] In some systems, notably the Java Virtual Machine[citation needed], execution over a range of bytecode instructions can be provably reversed.

When these assumptions prove incorrect, the adaptive optimizer can 'unwind' to a valid state and then interpret the byte code instructions correctly.