DocumentCode
1936712
Title
Dynamic Data Structure Analysis for Java Programs
Author
Pheng, Sokhom ; Verbrugge, Clark
Author_Institution
Sch. of Comput. Sci., McGill Univ., Montreal, Que.
fYear
0
fDate
0-0 0
Firstpage
191
Lastpage
201
Abstract
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 heap-based data structures
Keywords
Java; data structures; program diagnostics; reverse engineering; storage management; Java program; dynamic data structure analysis; execution trace; garbage collection; heap-based data structure; object-oriented language; program understanding; static analysis; Computer science; Data analysis; Data structures; Data visualization; Debugging; Information analysis; Java; Mirrors; Runtime; Shape;
fLanguage
English
Publisher
ieee
Conference_Titel
Program Comprehension, 2006. ICPC 2006. 14th IEEE International Conference on
Conference_Location
Athens
ISSN
1092-8138
Print_ISBN
0-7695-2601-2
Type
conf
DOI
10.1109/ICPC.2006.20
Filename
1631121
Link To Document