Memory Analyzer can be operated in batch mode to process heap dumps without user input.
./mat/ParseHeapDump.sh
myheapdump.hprof
-output=myheapdump2.hprof
-redact=BASIC
-map=myheapdump2.map
org.eclipse.mat.hprof:export
See export heap dump for more details.
./mat/ParseHeapDump.sh myheapdump.hprof -command=histogram org.eclipse.mat.api:query
See Query Report for more details.Other parameters controlling output include the following:
Argument | Description |
---|---|
-limit=number of entries | Controls the number of entries generated in an output table. See org.eclipse.mat.report.Params.Rendering.LIMIT |
-format=type of output | Controls the type of the output (HTML, CSV, or TXT). See org.eclipse.mat.report.Params.FORMAT |
-html.show_table_headings | Controls whether table headings should be shown for tables. See org.eclipse.mat.report.Params.Html.SHOW_TABLE_HEADER |
-html.show_totals | Controls whether totals should be shown for tables. See org.eclipse.mat.report.Params.Html.SHOW_TOTALS |
Task: Parsing myheapdump.hprof [Task: Parsing .\Downloads\myheapdump.hprof [ Subtask: Scanning .\Downloads\myheapdump.hprof [................. [INFO] Detected compressed references, because with uncompressed 64-bit references the array at 0x5c4bd4258 would overlap the array at 0x5c4bd4230 [.................... [INFO] Wrote threads call stacks to .\Downloads\myheapdump.threads [.................... [INFO] Heap .\Downloads\myheapdump.hprof contains 116,716 objects [.................... Subtask: Extracting objects from .\Downloads\myheapdump.hprof [...................................................................................Task: Removing unreachable objects [ Subtask: Searching for unreachable objects [ Subtask: Marking reachable objects [. Subtask: Re-indexing objects [.. Subtask: Re-indexing classes [... Subtask: Writing .\Downloads\myheapdump.idx.index [.... Subtask: Writing .\Downloads\myheapdump.o2c.index [..... Subtask: Writing .\Downloads\myheapdump.a2s.index [...... Subtask: Re-indexing outbound index [....... Subtask: Writing .\Downloads\myheapdump.inbound.index [........ Subtask: Writing .\Downloads\myheapdump.outbound.index [......... Subtask: Writing .\Downloads\myheapdump.o2hprof.index [.........Task: Calculating Dominator Tree [ Subtask: Dominator Tree calculation [ Subtask: Depth-first search [.................... Subtask: Computing dominators [.............................................. Subtask: Calculate retained sizes [............................................................ Subtask: Create dominators index file [................................................................................] Subtask: Test 'Heap Dump Overview' of section 'System Overview' [ Subtask: Test 'System Properties' of section 'System Overview' [ Subtask: Extracting Key Value Pairs... [ Subtask: Test 'Thread Overview' of section 'System Overview' [ Subtask: Searching Threads... [ Subtask: Test 'Top Consumers' of section 'System Overview' [ Subtask: Creating histogram [ Subtask: Grouping by package [ Subtask: Test 'Biggest Objects (Overview)' of section 'Top Consumers' [ Subtask: Test 'Biggest Objects' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Classes (Overview)' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Classes' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Class Loaders (Overview)' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Class Loaders' of section 'Top Consumers' [ Subtask: Test 'Biggest Top-Level Dominator Packages' of section 'Top Consumers' [ Subtask: Test 'Class Histogram' of section 'System Overview' [ Subtask: Test 'Leaks' of section 'Leak Suspects' [ Subtask: Finding problem suspects [ Subtask: Searching suspicious single objects ... [ Subtask: Searching suspicious groups of objects ... [ Subtask: building histogram [ Subtask: Preparing results [ Subtask: building histogram [ Subtask: building histogram [ Subtask: Finding paths [ Subtask: Test 'Overview' of section 'Leaks' [ Subtask: Test 'Problem Suspect 1' of section 'Leaks' [ Subtask: Test 'Description' of section 'Problem Suspect 1' [ Subtask: Test 'Shortest Paths To the Accumulation Point' of section 'Problem Suspect 1' [ Subtask: Test 'Shortest Paths To the Accumulation Point' of section 'Problem Suspect 1' [ Subtask: Test 'Accumulated Objects in Dominator Tree' of section 'Problem Suspect 1' [ Subtask: Test 'Accumulated Objects in Dominator Tree' of section 'Problem Suspect 1' [ Subtask: Test 'Accumulated Objects by Class in Dominator Tree' of section 'Problem Suspect 1' [ Subtask: Test 'Accumulated Objects by Class in Dominator Tree' of section 'Problem Suspect 1' [ Subtask: Test 'All Accumulated Objects by Class' of section 'Problem Suspect 1' [ Subtask: Test 'All Accumulated Objects by Class' of section 'Problem Suspect 1' []
The result is a HTML report.