我正在探索在具有大量 RAM(从 300GB 到 15TB,可能在 SGI Altix 4700 机器上)的机器上运行 Java 应用程序的可能性,我很好奇 Java 的 GC 是如何可能会在这种情况下发挥作用。
我听说 IBM 或 JRockit 的 JVM 可能比 Sun 的更适合这个。有谁知道在这种情况下有关 JVM 性能的任何研究或数据?
最佳答案
在 Sun JVM 上,您可以使用选项 -XX:UseConcMarkSweepGC 来打开并发标记和清除收集器,这将几乎完全避免默认 GC 算法的“停止世界”阶段,但代价是多一点开销。
在这样的机器上使用超过 VM 的建议已经过时了。 在现实世界的应用程序中,您通常拥有足够的共享数据,因此 CMS 和一个 JVM 的性能会更好。
关于大量 RAM 的 Java 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343929/