Cross-Input Learning and Discriminative Prediction in Evolvable
Virtual Machines
Modern languages like Java and C# rely on dynamic optimizations in
virtual machines for better performance. Current dynamic optimizations
are reactive. Their performance is constrained by the dependence on
runtime sampling and the partial knowledge of the execution. This work
tackles the problems by developing a set of techniques that make a
virtual machine evolve across production runs. The virtual machine
incrementally learns the relation between program inputs and
optimization strategies so that it proactively predicts the
optimizations suitable for a new run. The prediction is
discriminative, guarded by confidence measurement through dynamic
self-evaluation. We employ an enriched extensible specification
language to resolve the complexities in program inputs. These
techniques, implemented in Jikes RVM, produce significant performance
improvement on a set of Java applications.
Greg Steffan
Last modified: Thu Aug 27 09:55:01 EDT 2009