Automatic Accurate Live Memory Analysis for Garbage-Collected Languages

This paper describes a general approach for automatic and accurate live heap space and live heap space-bound analyses for high-level languages. The approach is based on program analysis and transformations and is fully automatic. The space-bound analysis produces accurate (tight) upper bounds in the presence of partially known input structures. The analyses have been implemented and experimental results confirm their accuracy.

[1]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[2]  Daniel Le Métayer,et al.  Computer-Time Garbage Collection by Sharing Analysis , 1989, FPCA.

[3]  Peter Altenbernd,et al.  On the false path problem in hard real-time programs , 1996, Proceedings of the Eighth Euromicro Workshop on Real-Time Systems.

[4]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[5]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[6]  Daniel Le Métayer,et al.  ACE: an automatic complexity evaluator , 1988, TOPL.

[7]  Roger Henriksson,et al.  Scheduling Garbage Collection in Embedded Systems , 1998 .

[8]  Yanhong A. Liu,et al.  Automatic Accurate Time-Bound Analysis for High-Level Languages , 1998, LCTES.

[9]  Torben Æ. Mogensen,et al.  A Backwards Analysis for Compile-time Garbage Collection , 1990, ESOP.

[10]  Philippe Flajolet,et al.  Automatic Average-Case Analysis of Algorithm , 1991, Theor. Comput. Sci..

[11]  Wolf Zimmermann,et al.  The automatic complexity analysis of divide-and-conquer algorithms , 1989 .

[12]  Reinhard Wilhelm,et al.  On Predicting Data Cache Behavior for Real-Time Systems , 1998, LCTES.

[13]  Yanhong A. Liu,et al.  Automatic Accurate Stack Space and Heap Space Analysis for High-Level Languages , 2000 .

[14]  Margaret Martonosi,et al.  Effectiveness of trace sampling for performance debugging tools , 1993, SIGMETRICS '93.

[15]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[16]  In Ryu Issues and challenges in developing embedded software for information appliances and telecommunication terminals , 1999, LCTES '99.

[17]  Katsuro Inoue,et al.  Analysis of functional programs to detect run-time garbage cells , 1988, TOPL.

[18]  John Hughes,et al.  Recursion and dynamic data-structures in bounded space: towards embedded ML programming , 1999, ICFP '99.

[19]  Wei-Ngan Chin,et al.  Calculating Sized Types , 1999, PEPM '00.

[20]  Karl Crary,et al.  Resource bound certification , 2000, POPL '00.

[21]  Mads Rosendahl,et al.  Automatic complexity analysis , 1989, FPCA.

[22]  David Sands,et al.  Complexity Analysis for a Lazy Higher-Order Language , 1989, Functional Programming.

[23]  Sharad Malik,et al.  Cache miss equations: a compiler framework for analyzing and tuning memory behavior , 1999, TOPL.

[24]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[25]  Patrik Persson Live memory analysis for garbage collection in embedded systems , 1999, LCTES '99.