Visualizing the Allocation and Death of Objects Raoul L. Veroy, Nathan P. Ricci, Samuel Z. Guyer Redline Research Group Tufts University 1
Death of Objects ● In a garbage collected language, where do objects die? ● Relate death to allocation ● Understanding death behavior improves program comprehension ● Check our design assumptions ● Find memory leaks ● Solution: visualization 2
What are we visualizing? ● Use Elephant Tracks 1 to generate a detailed trace of allocations/reclamations for Java programs ● ET computes when object becomes unreachable 1 http://www.cs.tufts.edu/research/redline/elephantTracks/ 3
What are we visualizing? ● Use Elephant Tracks to generate a detailed trace of allocations/reclamations for Java programs ● ET computes when object becomes unreachable 4
What are we visualizing? ● Use Elephant Tracks to generate a detailed trace of allocations/reclamations for Java programs ● ET computes when object becomes unreachable ● Lots of objects! Rendering all is challenging. 5
Hive plot ● Hive plots - rational approach to visualizing networks – M. Krzywinski, I. Birol, S. J. Jones, and M. A. Marra. Briefings in Bioinformatics 2012. ● HiveR - http://academic.depauw.edu/~hanson/HiveR/HiveR.html 6
7
8
9
Hive plot future work ● Hairball – Need edge bundling ● Address scalability ● Arrangement along axis – Using context, but which context? – Anything else? 10
Matrix plot ● Suggested by reviewer ● Uses time as context ● Column – allocation time ● Row – death time 11
12
13
14
15
16
17
Matrix plot future work ● Lower triangular matrix by definition – Eliminate wasted space? ● Need better rendering techniques ● Need clustering – Automatic – Interactive 18
Thank you. Questions, suggestions and comments? rveroy@cs.tufts.edu
Recommend
More recommend