Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Distilling Heap Dumps:
a Guide to Using and Extending
Memory Analyzer
Krum Tsvetkov (SAP)
Andrew Johnson (IBM)
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 2
Memory Analyzer over...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 3
Demo
 Introduction ...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 4
Introduction to exte...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 6
Name Resolver
 Used...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 7
Implement a Name Res...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 8
Query
 Used for exp...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 9
Implement a Query
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 12
Results from a Quer...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 13
Using a Predefined ...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 20
Request Resolver
 ...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 21
Implement a Request...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 22
Other extension poi...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 23
In Summary, MAT Off...
Distilling Heap Dumps: a Guide to
Using and Extending Memory
Analyzer
Krum Tsvetkov, Andrew Johnson 24
Thank You!
 Memory...
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
Practical lessons in memory analysis
Next
Download to read offline and view in fullscreen.

Share

Distilling Dumps: a Guide to Using and Extending Memory Analyzer

Download to read offline

Eclipse Summit Europe 2010 presentation: "Distilling Dumps: a Guide to Using and Extending Memory Analyzer"

Using Eclipse Memory Analyzer we shall show how to find out what your application was doing when a failure happened, what its data structures looked like, where memory was consumed and who owned it, and why the problem occurred, all based on one heap dump.

We shall also explain how the tool can be enhanced (using its defined API and extension points) for your particular environment to go beyond debugging out of memory errors.

Andrew Johnson
Krum Tsvetkov

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Distilling Dumps: a Guide to Using and Extending Memory Analyzer

  1. 1. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov (SAP) Andrew Johnson (IBM)
  2. 2. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 2 Memory Analyzer overview  Works with heap dumps – post-mortem analysis  UI and programmatic access to data in the heap dumps  Automatic problem recognition  Extendable
  3. 3. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 3 Demo  Introduction to Memory Analyzer
  4. 4. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 4 Introduction to extending MAT  Why extend MAT?  To save time doing the same thing repeatedly  To help others use the same technique as you  To do things not possible from the GUI  To build in application specific logic  Examples  Eclipse bundle explorer – shown as a tree (provided with MAT)  JRuby (recent contribution to MAT)  How to extend MAT  MAT provides a set of Eclipse extension points  User writes an extension plug-in  MAT provides an API for reading the data from a dump
  5. 5. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 6 Name Resolver  Used to give meaningful descriptions of objects  Text result (similar to a toString())  Useful for 'Group by Value' query  Extension point: org.eclipse.mat.nameResolver
  6. 6. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 7 Implement a Name Resolver
  7. 7. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 8 Query  Used for exploring dumps or detailed analysis  May interact with existing queries (context menus)  Integrated into MAT’s menus  Extension point: org.eclipse.mat.api.query
  8. 8. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 9 Implement a Query
  9. 9. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 12 Results from a Query IResult ObjectList(atree) ListResul(atable) Compositionofresults inHTML Histogr(atable)
  10. 10. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 13 Using a Predefined Result
  11. 11. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 20 Request Resolver  Used to identify what a thread was doing  Appears in the leak suspects report  Extension point - org.eclipse.mat.api.requestResolver
  12. 12. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 21 Implement a Request Resolver
  13. 13. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 22 Other extension points  Reports - org.eclipse.mat.report.report  HTML results of queries – also used for batch mode  Thread resolver – additional thread data such as native stacks  Ticket resolver – can identify appropriate routing for problem  Based on classes and classloaders of problem objects  Rendering – org.eclipse.mat.api.renderer  Additional to HTML and CSV  Trigger heap dump – org.eclipse.mat.api.heapDumpProvider  For new VM types  Parser – for new dump types and VMs, such as for Jikes RVM  Snapshot factory – org.eclipse.mat.api.factory  Unlikely to use this as replaces whole snapshot
  14. 14. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 23 In Summary, MAT Offers …  Helpful memory analysis features out-of-the-box  API for extracting data  Application specific analysis can be added as extensions
  15. 15. Distilling Heap Dumps: a Guide to Using and Extending Memory Analyzer Krum Tsvetkov, Andrew Johnson 24 Thank You!  Memory Analyzer @ Eclipse: http://www.eclipse.org/mat  Wiki page for extending Memory Analyzer: http://wiki.eclipse.org/MemoryAnalyzer/Extending_Memory_Analyzer  Forum: http://www.eclipse.org/forums/eclipse.memory-analyzer  Blogs: http://dev.eclipse.org/blogs/memoryanalyzer
  • lionelhsu

    Feb. 8, 2016
  • KrishnaKanthP

    Feb. 8, 2015
  • ssuser9613ac

    May. 29, 2014
  • andrewmkhoury

    May. 1, 2014
  • NikolayNikiforchuk

    Nov. 6, 2013
  • qrtt1

    Jun. 4, 2013
  • fuyou001

    Sep. 20, 2012
  • jellybeam

    Apr. 11, 2012
  • psyangelic

    Feb. 19, 2012
  • kogorou

    May. 18, 2011
  • boiledwater

    Jan. 11, 2011
  • milessabin

    Nov. 11, 2010

Eclipse Summit Europe 2010 presentation: "Distilling Dumps: a Guide to Using and Extending Memory Analyzer" Using Eclipse Memory Analyzer we shall show how to find out what your application was doing when a failure happened, what its data structures looked like, where memory was consumed and who owned it, and why the problem occurred, all based on one heap dump. We shall also explain how the tool can be enhanced (using its defined API and extension points) for your particular environment to go beyond debugging out of memory errors. Andrew Johnson Krum Tsvetkov

Views

Total views

12,871

On Slideshare

0

From embeds

0

Number of embeds

505

Actions

Downloads

284

Shares

0

Comments

0

Likes

12

×