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

analyzing the evolution of
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

ANALYZING THE EVOLUTION OF DATA STRUCTURES IN TRACE-BASED MEMORY MONITORING

Markus Weninger Elias Gander Hanspeter Mössenböck SSP 2018 – Hildesheim, Germany

slide-2
SLIDE 2

MOTIVATION

11/8/2018 9th Symposium on Software Performance 2018 2

Memory Time

millions of objects

slide-3
SLIDE 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

11/8/2018 9th Symposium on Software Performance 2018 3

Size: 3 Size: 4 Size: 10 Size: 5

t

slide-4
SLIDE 4

SYSTEM OVERVIEW

11/8/2018 9th Symposium on Software Performance 2018 4

AntTracks VM Application t

Mutator phase

  • Mut. phase GC phase

new X() new Y() new Z() new Y() move move move new Y() new Z()

Trace file AntTracks Analyzer Memory anomaly detection Memory leak analysis Heap Visualization Validation Inspection Analysis Data Structure Evolution Analysis

slide-5
SLIDE 5

DATA STRUCTURE DESCRIPTION

11/8/2018 9th Symposium on Software Performance 2018 5

DS java.util.LinkedList { java.util.LinkedList$Node; } java.util.LinkedList$Node { java.util.LinkedList$Node; (*); } head keyword fully-qualified type name list of pointed-to types wildcard leaf namespace java.util { DS LinkedList { *; } LinkedList$Node { LinkedList$Node; (*); } } package keyword explicit version namespace + wildcard version internal type (no keyword)

slide-6
SLIDE 6

DATA STRUCTURE DETECTION

11/8/2018 9th Symposium on Software Performance 2018 6

L N N D D

DS java.util.LinkedList { java.util.LinkedList$Node; } java.util.LinkedList$Node { java.util.LinkedList$Node; (*); }

N L N D X X  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 leaf DS head leaf leaf

slide-7
SLIDE 7

DATA STRUCTURE TRACKING

11/8/2018 9th Symposium on Software Performance 2018 7

t t0 200 200 400 400 900 900 ... ... start cur move 200  300 200 300 400 400 900 900 ... ... start cur move 400  700 200 300 400 700 900 900 ... ... start cur free 900 200 300 400 700 ... ... start cur t1 200 300 400 700 ... ... start end

200 400 900 300 700

slide-8
SLIDE 8

METRICS

11/8/2018 9th Symposium on Software Performance 2018 8

200 400 900 300 700

1 200 300 2 400 700 ... ... ... 1 200 300 2 400 700 ... ... ... start end id start size end size delta t Overall heap growth: 35 1 200 300 3 10 +7 2 400 700 4 4 +0 ... ... ... ... ... ... 1 200 300 3 10 +7 20 2 400 700 4 4 +0 ... ... ... ... HGP Heap growth portion in % Sorting by this metric highlights the most conspicious DS

slide-9
SLIDE 9

EXAMPLE: BROKEN CACHE

11/8/2018 9th Symposium on Software Performance 2018 9

slide-10
SLIDE 10

EXAMPLE: BROKEN CACHE

11/8/2018 9th Symposium on Software Performance 2018 10

slide-11
SLIDE 11

EXAMPLE: BROKEN CACHE

11/8/2018 9th Symposium on Software Performance 2018 11

Check JourneyService.findLocations()

slide-12
SLIDE 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

slide-13
SLIDE 13

TAKE-AWAYS

11/8/2018 9th Symposium on Software Performance 2018 13

Description Detection Tracking Metrics & Visualization DSL + Namespace + Wildcards + Leafs Describes pointed-to relation Recursive descent Allows to detect DS composition Track DSs through application's run time Stop tracking died DSs Quantify growth (transitive, ...) Sort and select based

  • n growth