Instructions
- Open both heap dumps in MAT
- Open the histogram for the whichever heap dump demonstrates the anomalous behavior (usually the one with the higher memory or thread usage).

- Compare it to another heap dump

- Select the appropriate heap dump from the list

Interpreting results

Class Name: The class that is instantiated in the application, taking up memory
Objects: The count of how many instances of the class are present above or below the other heap dump.
Shallow Heap: The number of bytes the given class is taking up in memory above or below the other heap dump.
Tips
Since MAT sorts descending by default I recommend toggling the ordering of the Objects and Shallow Heap columns to see the top outliers for each in both directions.
Typically you should ignore the pure Java classes like Strings, Arrays, and Maps and focus on the classes that your app defines.
Reference
Comparing Objects Official Eclipse Help Doc