Search code examples
javaoptimizationgarbage-collectiong1gc

Is there a GC in Java that does not introduce latency (stop-the-world) by perhaps running 100% concurrently?


Just curious. I heard something about the new G1GC addressing that latency problem. I can't / don't want to use RTSJ.

Thanks in advance


Solution

  • I don't think there are any zero-pause garbage collectors. But generally speaking a low-pause collector like CMS will do the job.

    The problems with pauses and pause reduction are as follows:

    • A zero-pause (or almost zero-pause) collection regime significantly increases overheads for normal program execution. This is particularly true with multithreaded languages like Java.

    • Schemes that use a dedicated thread or threads to do garbage collection can get swamped if the application generates too much garbage.

    • Any GC scheme will give you poor performance if the application's memory usage patterns are too "lumpy" and/or you don't have enough physical and virtual memory.