A couple of notes:
1. There are many JVM implementations (Oracle HotSpot, OpenJDK, Zing, J9,
...) and many collectors to choose from (G1, CMS, C4, ParallelGC, Balanced,
GenCon, ...) and the answers may vary between them. The choice of JVM and
collector is often driven by the application need,
Avi, I disagree, that would be a very narrow part of what we seem to
discuss here. Discussing how to run systems on JVMs is no more out-of-scope
for this list than discussion how run systems on Linux. And discussing the
proclivities of systems that work on JVMs and how to deal with GC there is