International Conference on Program Comprehension (2006)
June 14, 2006 to June 16, 2006
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/ICPC.2006.20
Clark Verbrugge , McGill University, Canada
Sokhom Pheng , McGill University, Canada
Analysis of dynamic data structure usage is useful for both program understanding and for improving the accuracy of other program analyses. Static analysis techniques, however, suffer from reduced accuracy in complex situations, and do not necessarily give a clear picture of runtime heap activity. We have designed and implemented a dynamic heap analysis system that allows one to examine and analyze how Java programs build and modify data structures. Using a complete execution trace from a profiled run of the program, we build an internal representation that mirrors the evolving runtime data structures. The resulting series of representations can then be analyzed and visualized, and we show how to use our approach to help understand how programs use data structures, the precise effect of garbage collection, and to establish limits on static data structure analysis. A deep understanding of dynamic data structures is particularly important for modern, object-oriented languages that make extensive use of heapbased data structures.
Clark Verbrugge, Sokhom Pheng, "Dynamic Data Structure Analysis for Java Programs", International Conference on Program Comprehension, vol. 00, no. , pp. 191-201, 2006, doi:10.1109/ICPC.2006.20