GC Advancements on the JVM:
G1 of the JVM seems to bring some new improvements on the table (for the JVM atleast)
G1 is a “server-style” GC and has the
following attributes.
Parallelism and Concurrency. G1 takes
advantage of the parallelism that
exists in hardware today. It uses all
available CPUs (cores, hardware
threads, etc.) to speed up its
“stop-the-world” pauses when an
application's Java threads are stopped
to enable GC. It also works
concurrently with running Java threads
to minimize whole-heap operations
during stop-the-world pauses.
Generational. Like the other HotSpot
GC's, G1 is generational, meaning it
treats newly-allocated (aka young)
objects and objects that have lived
for some time (aka old) differently.
It concentrates garbage collection
activity on young objects, as they are
the ones most likely to be
reclaimable, while visiting old
objects infrequently. For most Java
applications, generational garbage
collection has major efficiency
advantages over alternative schemes.
Compaction. Unlike CMS, G1 performs
heap compaction over time. Compaction
eliminates potential fragmentation
problems to ensure smooth and
consistent long-running operation.
Predictability. G1 is expected to be
more predictable than CMS. This is
largely due to the elimination of
fragmentation issues that can
negatively affect stop-the-world pause
times in CMS. Additionally, G1 has a
pause prediction model that, in many
situations, allows it to often meet
(or rarely exceed) a pause time
target.
G1 Link
HotSpot 6 Seems to have numerous garbage collectors you can choose from.