Modern programming languages have stimulated work on systems that dynamically
compile or optimize frequently executed portions of programs. In practice, such
systems typically rely on ad hoc heuristics. For example, a system may optimize
(or compile) some code once its execution count exceeds a given threshold. An analytical
model has been developed that expresses performance of such a system. In one embodiment,
the model is based on a bytecode frequency histogram, which indicates (for a given
program) how many bytecodes run for how many times. It predicts that the optimal
compilation threshold will occur where the hazard rate falls through the reciprocal
of the break-even point, the number of times a compiled bytecode must be executed
to recoup its compilation time. Based on the insight provided by the model, a dynamic
compilation control technique has been developed.