analyzing the evolution of
play

ANALYZING THE EVOLUTION OF DATA STRUCTURES IN TRACE-BASED MEMORY - PowerPoint PPT Presentation

ANALYZING THE EVOLUTION OF DATA STRUCTURES IN TRACE-BASED MEMORY MONITORING Markus Weninger Elias Gander Hanspeter Mssenbck SSP 2018 Hildesheim, Germany MOTIVATION Memory Time millions of objects 11/8/2018 9th Symposium on


  1. ANALYZING THE EVOLUTION OF DATA STRUCTURES IN TRACE-BASED MEMORY MONITORING Markus Weninger Elias Gander Hanspeter Mössenböck SSP 2018 – Hildesheim, Germany

  2. MOTIVATION Memory Time millions of objects 11/8/2018 9th Symposium on Software Performance 2018 2

  3. APPROACH  Analysis on the object-level hard to impossible  Millions of objects  Abstraction needed  Data structures  Evolution over time may be the key to detect memory leaks  But how to obtain the needed information?  Trace-based memory monitoring  Combine data structure information and temporal information  Quantify growth?  Metrics Size: 3 Size: 10 t Size: 4 Size: 5 11/8/2018 9th Symposium on Software Performance 2018 3

  4. SYSTEM OVERVIEW AntTracks VM AntTracks Analyzer Application Memory anomaly detection t Memory leak analysis new X() Mutator phase new Y() Validation Visualization new Z() new Y() Trace Heap file Mut. phase GC phase move Analysis Inspection move move Data Structure new Y() Evolution Analysis new Z() 11/8/2018 9th Symposium on Software Performance 2018 4

  5. DATA STRUCTURE DESCRIPTION head keyword fully-qualified type name package keyword list of pointed-to types DS java.util.LinkedList { namespace java.util { java.util.LinkedList$Node; DS LinkedList { } *; } java.util.LinkedList$Node { java.util.LinkedList$Node; LinkedList$Node { (*); LinkedList$Node; } (*); } explicit version } wildcard leaf namespace + wildcard version internal type (no keyword) 11/8/2018 9th Symposium on Software Performance 2018 5

  6. DATA STRUCTURE DETECTION  Detect all head objects  Start at heads and  visit referenced object if its type is part of pointed-to types  Follow references if  (1) its type is part of non-leaf pointed-to types and  (2) it is not a data structure head itself L leaf DS java.util.LinkedList { java.util.LinkedList$Node; N D leaf } N D X java.util.LinkedList$Node { java.util.LinkedList$Node; DS head N L (*); leaf } N D X 11/8/2018 9th Symposium on Software Performance 2018 6

  7. DATA STRUCTURE TRACKING free move move 200  300 400  700 t 1 900 t 0 t 200 300 400 700 900 start end cur cur cur start cur start start start 200 300 200 300 200 200 200 300 200 300 400 700 400 400 400 400 400 700 400 700 ... ... 900 900 900 900 900 900 ... ... ... ... ... ... ... ... 11/8/2018 9th Symposium on Software Performance 2018 7

  8. METRICS 200 300 t 400 700 Overall heap growth: 35 900 end start size delta HGP start end id size 1 1 1 1 200 200 200 200 300 300 300 300 3 3 10 10 +7 +7 20 2 2 2 2 400 400 400 400 700 700 700 700 4 4 4 4 +0 +0 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Heap growth portion in % Sorting by this metric highlights the most conspicious DS 11/8/2018 9th Symposium on Software Performance 2018 8

  9. EXAMPLE: BROKEN CACHE 11/8/2018 9th Symposium on Software Performance 2018 9

  10. EXAMPLE: BROKEN CACHE 11/8/2018 9th Symposium on Software Performance 2018 10

  11. EXAMPLE: BROKEN CACHE Check JourneyService.findLocations() 11/8/2018 9th Symposium on Software Performance 2018 11

  12. FUTURE WORK  Graph-based visualization  Aggregation based on data structure information  Automatic data structure descriptions  Using static + dynamic information (such as analyzing the evolution of points-to graphs)  Automatic pattern detection  Detect certain combinations of metrics  Automatically apply classification steps 11/8/2018 9th Symposium on Software Performance 2018 12

  13. TAKE-AWAYS Metrics & Description Detection Tracking Visualization DSL Recursive Track DSs Quantify + Namespace descent through growth + Wildcards application's (transitive, ...) + Leafs Allows to run time detect DS Sort and Describes composition Stop tracking select based pointed-to died DSs on growth relation 11/8/2018 9th Symposium on Software Performance 2018 13

Recommend


More recommend