Gated Memory Control for Memory Monitoring, Leak Detection and Garbage Collection
Chen Ding, Chengliang Zhang, Xipeng Shen, and Mitsunori Ogihara
ABSTRACT
In the past, program monitoring often operates at the code level,
performing checks at function and loop boundaries. Recent research
shows that profiling analysis can identify high-level phases in
complex binary code. Examples are time steps in scientific
simulations and service cycles in utility programs. Because of their
larger size and more predictable behavior, program phases make it
possible for more accurate and longer term predictions of program
behavior, especially its memory usage. This paper describes a new
approach that uses phase boundaries as the gates to monitor and
control the memory usage. In particular, it presents three
techniques: memory usage monitoring, object lifetime classification,
and preventive memory management. They use phase-level patterns to
predict the trend of the program's memory demand, identify and control
memory leaks, improve the efficiency of garbage collection. The
potential of the new techniques is demonstrated on two non-trivial
applications---a C compiler and a Lisp interpreter.
Download the paper in pdf format.
Copyright notice