# Batch mode

Memory Analyzer can be operated in batch mode to process heap dumps without user input.

1. Note: On Windows, use .\mat\ParseHeapDump.bat instead of ./mat/ParseHeapDump.sh
   Run ./mat/ParseHeapDump.sh myheapdump.hprof org.eclipse.mat.api:suspects
   - For a simple suspects report use org.eclipse.mat.api:suspects
   - For an overview report use org.eclipse.mat.api:overview
   - For a report on memory usage by component use org.eclipse.mat.api:top_components
   - To compare two heap dumps use./mat/ParseHeapDump.sh myheapdump.hprof -snapshot2=myheapdump2.hprof org.eclipse.mat.api:compare

       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'
       []

2. Unzip the report myheapdump_Leak_Suspects.zip
3. View the index.html

The result is a HTML report.