in Production Markus Weninger Johannes Kepler University Linz, - - PowerPoint PPT Presentation

in production
SMART_READER_LITE
LIVE PREVIEW

in Production Markus Weninger Johannes Kepler University Linz, - - PowerPoint PPT Presentation

Analyzing Memory Errors in Production Markus Weninger Johannes Kepler University Linz, Austria Institute for System Software WHO ARE WE? Fixing Memory Problems In Production 2 WHO ARE WE? Fixing Memory Problems In Production 2 WHO ARE WE?


slide-1
SLIDE 1

Analyzing Memory Errors in Production

Markus Weninger Johannes Kepler University Linz, Austria Institute for System Software

slide-2
SLIDE 2

WHO ARE WE?

Fixing Memory Problems In Production 2

slide-3
SLIDE 3

WHO ARE WE?

Fixing Memory Problems In Production 2

slide-4
SLIDE 4

WHO ARE WE?

Fixing Memory Problems In Production 2

slide-5
SLIDE 5

WHO ARE WE?

Fixing Memory Problems In Production 2

slide-6
SLIDE 6

WHO ARE WE?

Fixing Memory Problems In Production 2

slide-7
SLIDE 7

WHO ARE WE?

Fixing Memory Problems In Production 2

slide-8
SLIDE 8

WHO ARE WE?

For what? To find and fix memory anomalies!

Fixing Memory Problems In Production 2

slide-9
SLIDE 9

MOTIVATION

3 Fixing Memory Problems In Production

slide-10
SLIDE 10

MOTIVATION

3 Fixing Memory Problems In Production

Jake

slide-11
SLIDE 11

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-12
SLIDE 12

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-13
SLIDE 13

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-14
SLIDE 14

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-15
SLIDE 15

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-16
SLIDE 16

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-17
SLIDE 17

MOTIVATION

3 Fixing Memory Problems In Production

Jake July

slide-18
SLIDE 18

4 Fixing Memory Problems In Production

* not actually Jake

slide-19
SLIDE 19

4 Fixing Memory Problems In Production

Why is my program crashing?

* not actually Jake

slide-20
SLIDE 20

4 Fixing Memory Problems In Production

Why is my program crashing?

* not actually Jake

Let‘s try a memory analysis tool!

slide-21
SLIDE 21

PROBLEM

5 Fixing Memory Problems In Production

slide-22
SLIDE 22

PROBLEM

5 Fixing Memory Problems In Production

slide-23
SLIDE 23

PROBLEM

5 Fixing Memory Problems In Production

slide-24
SLIDE 24

PROBLEM

5 Fixing Memory Problems In Production

I am new to all of this!

slide-25
SLIDE 25

PROBLEM

5 Fixing Memory Problems In Production

I am new to all of this! What should I look for?

slide-26
SLIDE 26

PROBLEM

5 Fixing Memory Problems In Production

I am new to all of this! What should I look for? When to use which feature?

slide-27
SLIDE 27

PROBLEM

5 Fixing Memory Problems In Production

I am new to all of this! What should I look for? When to use which feature? <another question about memory analysis> ...

slide-28
SLIDE 28

POLL TIME

6 Fixing Memory Problems In Production

slide-29
SLIDE 29

POLL TIME

6 Fixing Memory Problems In Production

1 2 3 4 5 6 Used a memory analysis tool before Manually took a heap dump Knows what trace-based memory analysis is Could describe what a dominator tree is Dummy Series 1 Dummy Series 2 Dummy Series 3

slide-30
SLIDE 30

USERS NEED GUIDANCE

Fixing Memory Problems In Production 7

slide-31
SLIDE 31

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

slide-32
SLIDE 32

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

slide-33
SLIDE 33

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis

slide-34
SLIDE 34

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis GC root

slide-35
SLIDE 35

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis GC root

slide-36
SLIDE 36

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis GC root

... ... ... ...

slide-37
SLIDE 37

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis GC root

... ... ... ... ...

slide-38
SLIDE 38

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis GC root

... ... ... ... ...

slide-39
SLIDE 39

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

slide-40
SLIDE 40

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

slide-41
SLIDE 41

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

...

slide-42
SLIDE 42

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

...

slide-43
SLIDE 43

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

...

slide-44
SLIDE 44

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

...

slide-45
SLIDE 45

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive?

...

...

slide-46
SLIDE 46

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive? GC root GC root

...

...

slide-47
SLIDE 47

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive? GC root GC root 1 Mio. 10,000 10,000 10,000 1 Mio. 1 Mio.

...

...

slide-48
SLIDE 48

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive? GC root GC root 1 Mio. 10,000 10,000 10,000 1 Mio. 1 Mio.

...

...

slide-49
SLIDE 49

MEMORY ANALYSIS 101

Fixing Memory Problems In Production 8

Top-down analysis Bottom-up analysis GC root

... ... ... ...

Which single object / GC root keeps the most other objects alive? GC root GC root 1 Mio. 10,000 10,000 10,000 1 Mio. 1 Mio.

...

Analyze why a certain group of

  • bjects accumulates over time

...

slide-50
SLIDE 50

DOMINATOR TREE

Fixing Memory Problems In Production 9

GC Roots L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

Object Reference Graph

slide-51
SLIDE 51

DOMINATOR TREE

Fixing Memory Problems In Production 9

GC Roots L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

  • Dom. Tree Root

L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

Object Reference Graph Dominator Tree

slide-52
SLIDE 52

DOMINATOR TREE

Fixing Memory Problems In Production 10

GC Roots L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

  • Dom. Tree Root

L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

Object Reference Graph Dominator Tree

slide-53
SLIDE 53

DOMINATOR TREE

Fixing Memory Problems In Production 10

GC Roots L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

  • Dom. Tree Root

L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

Object Reference Graph Dominator Tree What happens if we could free L1?

slide-54
SLIDE 54

DOMINATOR TREE

Fixing Memory Problems In Production 11

GC Roots L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

  • Dom. Tree Root

L1 L2 N1 N2 N3 N4 N5 D1 D2 D3 D4 D5 D6 D7 D8 N6 N7 N8 N9

N10

Object Reference Graph Dominator Tree These can be collected too

slide-55
SLIDE 55

Fixing Memory Problems In Production 12

slide-56
SLIDE 56

Fixing Memory Problems In Production 12

Thanks Markus, but that seems like a lot to learn...

slide-57
SLIDE 57

Fixing Memory Problems In Production 12

Thanks Markus, but that seems like a lot to learn...

slide-58
SLIDE 58

Fixing Memory Problems In Production 12

Thanks Markus, but that seems like a lot to learn... Okay, let us try to improve that in AntTracks

slide-59
SLIDE 59

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase

slide-60
SLIDE 60

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X()

slide-61
SLIDE 61

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X()

slide-62
SLIDE 62

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X()

Trace file

slide-63
SLIDE 63

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y()

Trace file

slide-64
SLIDE 64

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y() new Z()

Trace file

slide-65
SLIDE 65

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y() new Z() new Y()

Trace file

slide-66
SLIDE 66

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y() new Z() new Y() move

Trace file

slide-67
SLIDE 67

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y() new Z() new Y() move move

Trace file

slide-68
SLIDE 68

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y() new Z() new Y() move move move

Trace file

slide-69
SLIDE 69

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

AntTracks VM Application t

Mutator phase

  • Mut. phase

GC phase new X() new Y() new Z() new Y() move move move new Y()

Trace file

slide-70
SLIDE 70

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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

slide-71
SLIDE 71

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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

slide-72
SLIDE 72

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1

slide-73
SLIDE 73

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1

slide-74
SLIDE 74

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1 Heap 2

slide-75
SLIDE 75

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1 Heap 2 Heap n

slide-76
SLIDE 76

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1 Heap 2 Heap n

slide-77
SLIDE 77

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1 Heap 2 Heap n

slide-78
SLIDE 78

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1 Heap 2 Heap n

slide-79
SLIDE 79

ANTTRACKS SYSTEM OVERVIEW

Fixing Memory Problems In Production 13

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 1 Heap 2 Heap n

slide-80
SLIDE 80

GUIDED EXPLORATION

Fixing Memory Problems In Production 14

slide-81
SLIDE 81

GUIDED EXPLORATION

Fixing Memory Problems In Production 14

Detection describes the task of automatically detecting a potential problem, i.e., a suspicious pattern.

slide-82
SLIDE 82

GUIDED EXPLORATION

Fixing Memory Problems In Production 14

Detection describes the task of automatically detecting a potential problem, i.e., a suspicious pattern. Highlighting the relevant region on the UI helps users to understand where the automatically gained insight can be found if the view was inspected manually.

slide-83
SLIDE 83

GUIDED EXPLORATION

Fixing Memory Problems In Production 14

Detection describes the task of automatically detecting a potential problem, i.e., a suspicious pattern. Highlighting the relevant region on the UI helps users to understand where the automatically gained insight can be found if the view was inspected manually. Explanation of the highlighted visualization helps users to interpret it and explains concepts that are needed for this interpretation.

slide-84
SLIDE 84

GUIDED EXPLORATION

Fixing Memory Problems In Production 14

Detection describes the task of automatically detecting a potential problem, i.e., a suspicious pattern. Highlighting the relevant region on the UI helps users to understand where the automatically gained insight can be found if the view was inspected manually. Explanation of the highlighted visualization helps users to interpret it and explains concepts that are needed for this interpretation. Suggestions on which steps could / should be taken next make it easier for the user to understand what operations are possible and why they might be useful.

slide-85
SLIDE 85

GUIDED EXPLORATION

Fixing Memory Problems In Production 14

Detection describes the task of automatically detecting a potential problem, i.e., a suspicious pattern. Highlighting the relevant region on the UI helps users to understand where the automatically gained insight can be found if the view was inspected manually. Explanation of the highlighted visualization helps users to interpret it and explains concepts that are needed for this interpretation. Suggestions on which steps could / should be taken next make it easier for the user to understand what operations are possible and why they might be useful.

slide-86
SLIDE 86

DEMO: EASYTRAVEL

Fixing Memory Problems In Production 15

slide-87
SLIDE 87

DEMO: OVERVIEW

Fixing Memory Problems In Production 16

slide-88
SLIDE 88

DEMO: OVERVIEW (1) DETECTION + (2) HIGHLIGHTING

Fixing Memory Problems In Production 17

slide-89
SLIDE 89

DEMO: OVERVIEW (3) EXPLANATION + (4) SUGGESTION

Fixing Memory Problems In Production 18

slide-90
SLIDE 90

DEMO: EVOLUTION

Fixing Memory Problems In Production 19

slide-91
SLIDE 91

DEMO: EVOLUTION

Fixing Memory Problems In Production 20

slide-92
SLIDE 92

DEMO: EVOLUTION

Fixing Memory Problems In Production 20

Date objects allocated in the constructor of Base are the major suspects for a memory leak since about 30% of the

  • verall

heap growth is accounted to them. Inspect who keeps them alive.

slide-93
SLIDE 93

DEMO: GRAPH VIEW

Fixing Memory Problems In Production 21

slide-94
SLIDE 94

DEMO: GRAPH VIEW

Fixing Memory Problems In Production 22

slide-95
SLIDE 95

DEMO: GRAPH VIEW

Fixing Memory Problems In Production 23

slide-96
SLIDE 96

DEMO: GRAPH VIEW

Fixing Memory Problems In Production 23

slide-97
SLIDE 97

DEMO: GRAPH VIEW

Fixing Memory Problems In Production 23

Too many ArrayList<Location> are added here.

slide-98
SLIDE 98

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 24

slide-99
SLIDE 99

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 25

slide-100
SLIDE 100

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 26

slide-101
SLIDE 101

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 27

slide-102
SLIDE 102

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 27

slide-103
SLIDE 103

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 27

slide-104
SLIDE 104

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 27

slide-105
SLIDE 105

ANOTHER DEMO: FINAGLE-HTTP

Fixing Memory Problems In Production 27

slide-106
SLIDE 106

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request)

Fixing Memory Problems In Production 28

slide-107
SLIDE 107

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) }

Fixing Memory Problems In Production 28

slide-108
SLIDE 108

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) }

Fixing Memory Problems In Production 28

slide-109
SLIDE 109

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) } val h = { rep: http.Response => totalLength += rep.content.length } for (i <- 0 until NUM_REQUESTS { Await.result(response.onSuccess(h)) }

Fixing Memory Problems In Production 28

slide-110
SLIDE 110

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) } val h = { rep: http.Response => totalLength += rep.content.length } for (i <- 0 until NUM_REQUESTS { Await.result(response.onSuccess(h)) }

Fixing Memory Problems In Production 28

slide-111
SLIDE 111

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) } val h = { rep: http.Response => totalLength += rep.content.length } for (i <- 0 until NUM_REQUESTS { Await.result(response.onSuccess(h)) }

Fixing Memory Problems In Production 28

slide-112
SLIDE 112

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) } val h = { rep: http.Response => totalLength += rep.content.length } for (i <- 0 until NUM_REQUESTS { Await.result(response.onSuccess(h)) }

Fixing Memory Problems In Production 28

slide-113
SLIDE 113

DEMO: FINAGLE-HTTP

val response: Future[http.Response] = client(request) for (i <- 0 until NUM_REQUESTS) { Await.result(response.onSuccess { rep: http.Response => totalLength += rep.content.length }) } val h = { rep: http.Response => totalLength += rep.content.length } for (i <- 0 until NUM_REQUESTS { Await.result(response.onSuccess(h)) }

Fixing Memory Problems In Production 28

slide-114
SLIDE 114

TAKE-AWAYS

Fixing Memory Problems In Production 29

slide-115
SLIDE 115

TAKE-AWAYS

Fixing Memory Problems In Production 29

Memory Analysis Top-down Bottom-up Heap dumps Trace-based ... and 100 other things

slide-116
SLIDE 116

TAKE-AWAYS

Fixing Memory Problems In Production 29

Memory Analysis Problem Top-down Bottom-up Heap dumps Trace-based ... and 100 other things New users need guidance to get started faster It is not enough to „throw tools at them“

slide-117
SLIDE 117

TAKE-AWAYS

Fixing Memory Problems In Production 29

Memory Analysis Problem Guided Exploration Top-down Bottom-up Heap dumps Trace-based ... and 100 other things New users need guidance to get started faster It is not enough to „throw tools at them“ Detection Highlighting Explanation Suggestion

slide-118
SLIDE 118

TAKE-AWAYS

Fixing Memory Problems In Production 29

Memory Analysis Problem Guided Exploration Top-down Bottom-up Heap dumps Trace-based ... and 100 other things New users need guidance to get started faster It is not enough to „throw tools at them“ Detection Highlighting Explanation Suggestion Markus Weninger

Johannes Kepler University Linz, Austria markus.weninger@jku.at http://mevss.jku.at/AntTracks http://bit.ly/weninger_ssw

slide-119
SLIDE 119

Additional Notes

 Some icons made by Freepik & Smashicons from https://www.flaticon.com  Some photos made by bruce mars and Isaque Pereira from Pexels

Fixing Memory Problems In Production 30