Shallow Heap Size
Shallow size is the amount of memory allocated to store the object itself, not taking into account the referenced objects.
Retained Heap Size
Retained size of an object is its shallow size plus the shallow size of the Objects that are accessible, directly or indirectly, only from this object. In other words, the retained size represents the amount of memory that will be freed by GC when this object is collected.
JVM Heap setting
-Xms Startup Heap Size
-Xmx Max JVM heap size
-Xmn young generation heap size
How to get JVM Heap Dump
Approach 1: dump:format=b,file=heap.bin <pid>
Approach 2: Set parameter "-XX:+HeapDumpOnOutOfMemoryError" in JVM start setting. In case there is a OutOfMemoryError raised, JVM will automatically generate a heap dump file. This file will located in application root directory.
Momory Analyzer
See http://www.eclipse.org/mat/.