View Related Documents

Abstract

This paper describes a technique for checkpointing a running system by a combination of reflective introspection and program analysis. By using an extension to Java’s Reflection API which allows activation frames and other aspects of execution state to be reflectively inspected and modified, we can halt at and restart from arbitrary points in the execution. We apply this checkpointing technique to an area that is not typically associated with reflection — optimization of memory footprint and startup time. We have successfully used this technique in the joeq virtual machine to reduce the heap size and the application startup time significantly.

Fulltext Preview

Image of the first page of the fulltext document