Tracing Garbage Collection

The two primary measures of garbage collection performance are throughput
and pauses. Throughput is the percentage of the total time spent on other
activities apart from GC. Pauses are times when an application appears unresponsive
due to GC.

Two other considerations are footprint and promptness. Footprint is
the working size of the JVM process, measured in pages and cache lines. Promptness
is the time between when an object becomes dead, and when the memory becomes
available.

This is an important consideration for distributed systems. A particular
generation size makes a trade-off between these four metrics. For example,
a large young generation likely maximizes throughput, but at the cost of footprint
and promptness.