Garbage Collectors in JVM


The percentage of total time not spent in garbage collection, considered over long periods of time.

Garbage collection overhead

The inverse of throughput, that is, the percentage of total time spent in garbage collection.

Pause time

The length of time during which application execution is stopped while garbage collection is occurring.

Frequency of collection

How often collection occurs, relative to application execution.


A measure of size, such as heap size.


The time between when an object becomes garbage and when the memory becomes available.

Heap is divided into generations, mostly in two

  1. young objects
  2. old objects

Different collection algorithm can be used for different part (generation) of heap, and each algorithm can be optimized based on commonly observed characteristic of that particular generation.

weak-generation-hypothesis: most objects die young

Continue reading