我正在探索在具有大量RAM(可能在300GB到15TB,可能在SGI Altix 4700机器上)的机器上运行Java应用程序的可能性,我很好奇Java的GC可能会如何执行在这种情况下.
我听说IBM或JRockit的JVM可能比Sun更适合这种情况.在这种情况下,有没有人知道有关JVM性能的任何研究或数据?
在Sun JVM上,您可以使用选项-XX:UseConcMarkSweepGC打开并发标记和扫描收集器,这将几乎完全避免默认GC算法的"停止世界"阶段,代价是多一点高架.
在这样的机器上使用VM以上的建议是IMHO过时了.在实际应用程序中,您通常拥有足够的共享数据,因此CMS和一个JVM的性能更好.