SlideShare une entreprise Scribd logo
1  sur  33
Practical Lessons in
Memory Analysis
Andrew Johnson
advisory software engineer
IBM United Kingdom Limited
2
Based on TS-4118 at JavaOne 2009
Original presentation by
• Krum Tsvetkov - SAP AG
• Andrew Johnson – IBM United Kingdom Limited
3
Goal
Learn practical tips and tricks for the
analysis of common memory-related
problems
4
Agenda
Introduction
Analyzing Memory Leaks
Analyzing a Heavy Request
Reducing Memory Footprint
Non-heap Memory
Summary
Q & A
5
Why care about memory?
Memory is a crucial resource
Excessive memory usage can cause:
• Crashes in the application
• Unresponsive applications
• Unpredictable program behavior
Memory analysis is complicated
6
How will this session help me?
Present common memory-related issues
Give hints how to solve them using heap
dumps and Memory Analyzer
Show many demonstrations using real-life
heap dumps
Show how to simplify analysis by
automating it
7
Heap dumps are useful for analysis
Heap dumps come “for free”
They are suitable for production
The comprehensive data allows detailed
analysis
There is wide platform coverage
• HPROF dumps from HotSpot based JVMs
• DTFJ system dumps from IBM JVMs
• Portable Heap Dumps (PHD) file from IBM JVMs
JSR-326/Apache Kato standardization
• http://incubator.apache.org/projects/kato.html
8
Agenda
Introduction
Analyzing Memory Leaks
Analyzing a Heavy Request
Reducing Memory Footprint
Non-heap Memory
Summary
Q & A
9
First, collect data for analysis
Enable heap dumps on OutOfMemoryError
Trigger heap dumps on demand if needed
How-to for getting a heap dump:
http://wiki.eclipse.org/index.php/MemoryAnalyzer#Gett
10
How to get a “good” heap dump
 When memory is exhausted the leak will occupy
most of the processing space
 Ensure big enough processing space, this will make
the leak easier to find
Max
Heap
Min
Heap
Processing
Space
Base
Memory
11
How to analyze memory leaks
Find the biggest objects
Analyze why they are kept in memory
Analyze what makes them big
12
Demonstration
 Analysis of a Memory Leak
13
How the leak analysis was done
Got a “good” heap dump
Found the biggest objects (in the dominator
tree)
Analyzed who kept them alive (using paths)
Analyzed what made them big (looking at
their retained set)
Used “Leak Report” to automate the
analysis
14
Agenda
Introduction
Analyzing Memory Leaks
Analyzing a Heavy Request
Reducing Memory Footprint
Non-heap Memory
Summary
Q & A
15
What is a heavy request?
An expensive operation which can cause an
OutOfMemoryError
“Acute” rather than a “chronic” problem
Examples:
• Reading a big file in memory not in chunks
• Try to load a whole DB table in memory
16
Inspect the thread to find its activity
Look at the thread attributes - name, class,
etc...
Look at the local variables
Look at the stack of the thread
17
Demonstration
Analysis of a Heavy Request
18
How thread activity was analyzed
Inspected thread attributes and local
variables (in object explorer)
Analyzed stack trace
19
Agenda
Introduction
Analyzing Memory Leaks
Analyzing a Heavy Request
Reducing Memory Footprint
Non-heap Memory
Summary
Q & A
20
Why is memory footprint important?
 A lower memory footprint can improve:
• The scaling of an application / server
• Performance by increasing the time between GCs
Max
Heap
Min
Heap
Processing
Space
Base
Memory
21
Find where footprint can be optimized
Inspect the set of retained objects
Search for inefficiently used data structures
Look for redundant data
22
Demonstration
• Analysis of High Memory Footprint
23
How memory footprint was analyzed
Analyzed retained objects (in dominator
tree, retained set)
Used “Group by Value” to find redundant
objects
Used the commands from the “Collections”
group
Used “Component Report” to automate the
analysis
24
Agenda
Introduction
Analyzing Memory Leaks
Analyzing a Heavy Request
Reducing Memory Footprint
Non-heap Memory
Summary
Q & A
25
Non-heap memory can be exhausted
What is in the non-heap memory?
• Metadata for classes
• Interned Strings (for some JVMs)
• NIO direct byte buffers
• Bitmaps
How can it be exhausted?
• Too many interned Strings
• Classes packaged and loaded multiple times
• Class loaders which are not properly released
26
Why is a class loader not released?
 The trivial case – there
is a “normal” reference
to it
 A common case – it is
the context class loader
of a thread
 The registry problem –
one instance is enough
Class loader
Class Class
Instance Instance Instance InstanceInstance
Registry
Root
27
How to analyze “leaking” class loaders
Find classes loaded more than once
Find redundant loaders by their name
Look at the paths to the suspect class
loaders
28
Demonstration
Analysis of “Leaking” Class Loaders
29
How “leaking” class loaders analysis was done
Used the “Duplicate Classes” query
Found the loaders that load redundant
classes
Analyzed why they are not released (using
paths)
30
Agenda
Introduction
Analyzing Memory Leaks
Analyzing a Heavy Request
Reducing Memory Footprint
Non-heap Memory
Summary
Q & A
31
Summary
Heap dumps are very helpful for memory
analysis
Memory Analyzer offers rich analysis feature
set
The analysis can often be automated
32
Questions and answers
Memory Analyzer homepage @ Eclipse
• http://www.eclipse.org/mat/
• Binary downloads
• Source downloads
• Forum
• Getting started guide
• Frequently asked questions
• Bug reports
33
Thank you
Andrew Johnson
• IBM United Kingdom Limited
Memory Analyzer homepage @ Eclipse
• http://www.eclipse.org/mat/
IBM Support Assistant
• http://www-01.ibm.com/software/support/isa/
• IBM Monitoring and Diagnostic Tools – Memory
Analyzer

Contenu connexe

Tendances

28 to 29 detection
28 to 29 detection 28 to 29 detection
28 to 29 detection
myrajendra
 
Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)
Marcos García
 
Java Garbage Collection, Monitoring, and Tuning
Java Garbage Collection, Monitoring, and TuningJava Garbage Collection, Monitoring, and Tuning
Java Garbage Collection, Monitoring, and Tuning
Carol McDonald
 

Tendances (13)

Gsummit apis-2013
Gsummit apis-2013Gsummit apis-2013
Gsummit apis-2013
 
28 to 29 detection
28 to 29 detection 28 to 29 detection
28 to 29 detection
 
Performance and predictability
Performance and predictabilityPerformance and predictability
Performance and predictability
 
Chainer Development Plan 2015/12
Chainer Development Plan 2015/12Chainer Development Plan 2015/12
Chainer Development Plan 2015/12
 
Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)Quick introduction to Java Garbage Collector (JVM GC)
Quick introduction to Java Garbage Collector (JVM GC)
 
Performance and predictability (1)
Performance and predictability (1)Performance and predictability (1)
Performance and predictability (1)
 
1 sample16c132 java-programming
1 sample16c132 java-programming1 sample16c132 java-programming
1 sample16c132 java-programming
 
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
 
Oracle TKPROF Utility
Oracle TKPROF UtilityOracle TKPROF Utility
Oracle TKPROF Utility
 
Data Type C# - Lec2 (Workshop on C# Programming: Learn to Build)
Data Type C# - Lec2 (Workshop on C# Programming: Learn to Build)Data Type C# - Lec2 (Workshop on C# Programming: Learn to Build)
Data Type C# - Lec2 (Workshop on C# Programming: Learn to Build)
 
Type Casting C# - Lec4 (Workshop on C# Programming: Learn to Build)
Type Casting C# - Lec4 (Workshop on C# Programming: Learn to Build)Type Casting C# - Lec4 (Workshop on C# Programming: Learn to Build)
Type Casting C# - Lec4 (Workshop on C# Programming: Learn to Build)
 
C# Basic - Lec1 (Workshop on C# Programming: Learn to Build)
C# Basic - Lec1 (Workshop on C# Programming: Learn to Build)C# Basic - Lec1 (Workshop on C# Programming: Learn to Build)
C# Basic - Lec1 (Workshop on C# Programming: Learn to Build)
 
Java Garbage Collection, Monitoring, and Tuning
Java Garbage Collection, Monitoring, and TuningJava Garbage Collection, Monitoring, and Tuning
Java Garbage Collection, Monitoring, and Tuning
 

Similaire à Practical lessons in memory analysis

2010 AIRI Petabyte Challenge - View From The Trenches
2010 AIRI Petabyte Challenge - View From The Trenches2010 AIRI Petabyte Challenge - View From The Trenches
2010 AIRI Petabyte Challenge - View From The Trenches
George Ang
 
Scam2011 syer
Scam2011 syerScam2011 syer
Scam2011 syer
SAIL_QU
 

Similaire à Practical lessons in memory analysis (20)

Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
 
Tachyon workshop 2015-07-19
Tachyon workshop 2015-07-19Tachyon workshop 2015-07-19
Tachyon workshop 2015-07-19
 
Memory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual MachineMemory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual Machine
 
Using the big guns: Advanced OS performance tools for troubleshooting databas...
Using the big guns: Advanced OS performance tools for troubleshooting databas...Using the big guns: Advanced OS performance tools for troubleshooting databas...
Using the big guns: Advanced OS performance tools for troubleshooting databas...
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using Hazelcast
 
TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012
 
2010 AIRI Petabyte Challenge - View From The Trenches
2010 AIRI Petabyte Challenge - View From The Trenches2010 AIRI Petabyte Challenge - View From The Trenches
2010 AIRI Petabyte Challenge - View From The Trenches
 
Java performance - not so scary after all
Java performance - not so scary after allJava performance - not so scary after all
Java performance - not so scary after all
 
Why databases cry at night
Why databases cry at nightWhy databases cry at night
Why databases cry at night
 
Introduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkIntroduction to Recurrent Neural Network
Introduction to Recurrent Neural Network
 
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
JavaOne 2010: Top 10 Causes for Java Issues in Production and What to Do When...
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Tachyon-2014-11-21-amp-camp5
Tachyon-2014-11-21-amp-camp5Tachyon-2014-11-21-amp-camp5
Tachyon-2014-11-21-amp-camp5
 
Lecture semantic augmentation
Lecture semantic augmentationLecture semantic augmentation
Lecture semantic augmentation
 
Linux IO internals for database administrators (SCaLE 2017 and PGDay Nordic 2...
Linux IO internals for database administrators (SCaLE 2017 and PGDay Nordic 2...Linux IO internals for database administrators (SCaLE 2017 and PGDay Nordic 2...
Linux IO internals for database administrators (SCaLE 2017 and PGDay Nordic 2...
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph models
 
Profiling Web Archives
Profiling Web ArchivesProfiling Web Archives
Profiling Web Archives
 
Scam2011 syer
Scam2011 syerScam2011 syer
Scam2011 syer
 
Chapter 5 b
Chapter 5  bChapter 5  b
Chapter 5 b
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
 

Dernier

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Practical lessons in memory analysis

  • 1. Practical Lessons in Memory Analysis Andrew Johnson advisory software engineer IBM United Kingdom Limited
  • 2. 2 Based on TS-4118 at JavaOne 2009 Original presentation by • Krum Tsvetkov - SAP AG • Andrew Johnson – IBM United Kingdom Limited
  • 3. 3 Goal Learn practical tips and tricks for the analysis of common memory-related problems
  • 4. 4 Agenda Introduction Analyzing Memory Leaks Analyzing a Heavy Request Reducing Memory Footprint Non-heap Memory Summary Q & A
  • 5. 5 Why care about memory? Memory is a crucial resource Excessive memory usage can cause: • Crashes in the application • Unresponsive applications • Unpredictable program behavior Memory analysis is complicated
  • 6. 6 How will this session help me? Present common memory-related issues Give hints how to solve them using heap dumps and Memory Analyzer Show many demonstrations using real-life heap dumps Show how to simplify analysis by automating it
  • 7. 7 Heap dumps are useful for analysis Heap dumps come “for free” They are suitable for production The comprehensive data allows detailed analysis There is wide platform coverage • HPROF dumps from HotSpot based JVMs • DTFJ system dumps from IBM JVMs • Portable Heap Dumps (PHD) file from IBM JVMs JSR-326/Apache Kato standardization • http://incubator.apache.org/projects/kato.html
  • 8. 8 Agenda Introduction Analyzing Memory Leaks Analyzing a Heavy Request Reducing Memory Footprint Non-heap Memory Summary Q & A
  • 9. 9 First, collect data for analysis Enable heap dumps on OutOfMemoryError Trigger heap dumps on demand if needed How-to for getting a heap dump: http://wiki.eclipse.org/index.php/MemoryAnalyzer#Gett
  • 10. 10 How to get a “good” heap dump  When memory is exhausted the leak will occupy most of the processing space  Ensure big enough processing space, this will make the leak easier to find Max Heap Min Heap Processing Space Base Memory
  • 11. 11 How to analyze memory leaks Find the biggest objects Analyze why they are kept in memory Analyze what makes them big
  • 13. 13 How the leak analysis was done Got a “good” heap dump Found the biggest objects (in the dominator tree) Analyzed who kept them alive (using paths) Analyzed what made them big (looking at their retained set) Used “Leak Report” to automate the analysis
  • 14. 14 Agenda Introduction Analyzing Memory Leaks Analyzing a Heavy Request Reducing Memory Footprint Non-heap Memory Summary Q & A
  • 15. 15 What is a heavy request? An expensive operation which can cause an OutOfMemoryError “Acute” rather than a “chronic” problem Examples: • Reading a big file in memory not in chunks • Try to load a whole DB table in memory
  • 16. 16 Inspect the thread to find its activity Look at the thread attributes - name, class, etc... Look at the local variables Look at the stack of the thread
  • 18. 18 How thread activity was analyzed Inspected thread attributes and local variables (in object explorer) Analyzed stack trace
  • 19. 19 Agenda Introduction Analyzing Memory Leaks Analyzing a Heavy Request Reducing Memory Footprint Non-heap Memory Summary Q & A
  • 20. 20 Why is memory footprint important?  A lower memory footprint can improve: • The scaling of an application / server • Performance by increasing the time between GCs Max Heap Min Heap Processing Space Base Memory
  • 21. 21 Find where footprint can be optimized Inspect the set of retained objects Search for inefficiently used data structures Look for redundant data
  • 22. 22 Demonstration • Analysis of High Memory Footprint
  • 23. 23 How memory footprint was analyzed Analyzed retained objects (in dominator tree, retained set) Used “Group by Value” to find redundant objects Used the commands from the “Collections” group Used “Component Report” to automate the analysis
  • 24. 24 Agenda Introduction Analyzing Memory Leaks Analyzing a Heavy Request Reducing Memory Footprint Non-heap Memory Summary Q & A
  • 25. 25 Non-heap memory can be exhausted What is in the non-heap memory? • Metadata for classes • Interned Strings (for some JVMs) • NIO direct byte buffers • Bitmaps How can it be exhausted? • Too many interned Strings • Classes packaged and loaded multiple times • Class loaders which are not properly released
  • 26. 26 Why is a class loader not released?  The trivial case – there is a “normal” reference to it  A common case – it is the context class loader of a thread  The registry problem – one instance is enough Class loader Class Class Instance Instance Instance InstanceInstance Registry Root
  • 27. 27 How to analyze “leaking” class loaders Find classes loaded more than once Find redundant loaders by their name Look at the paths to the suspect class loaders
  • 29. 29 How “leaking” class loaders analysis was done Used the “Duplicate Classes” query Found the loaders that load redundant classes Analyzed why they are not released (using paths)
  • 30. 30 Agenda Introduction Analyzing Memory Leaks Analyzing a Heavy Request Reducing Memory Footprint Non-heap Memory Summary Q & A
  • 31. 31 Summary Heap dumps are very helpful for memory analysis Memory Analyzer offers rich analysis feature set The analysis can often be automated
  • 32. 32 Questions and answers Memory Analyzer homepage @ Eclipse • http://www.eclipse.org/mat/ • Binary downloads • Source downloads • Forum • Getting started guide • Frequently asked questions • Bug reports
  • 33. 33 Thank you Andrew Johnson • IBM United Kingdom Limited Memory Analyzer homepage @ Eclipse • http://www.eclipse.org/mat/ IBM Support Assistant • http://www-01.ibm.com/software/support/isa/ • IBM Monitoring and Diagnostic Tools – Memory Analyzer