我可以使用如此大的Eden空间启动JVM,它可以在没有任何GC的情况下运行完成.假设我有一堆免费的mem

Hoa*_*han 6 java garbage-collection java-8

如果我有足够的内存,我可以启动一个Java应用程序(说明为mMven)单独使用Eden空间直到完成没有任何GC吗?

Pet*_*rey 5

是的,我已经在Java 6+中为真正的应用程序做了这个.我开始使用24 GB Eden空间,小型幸存者和终身空间.后来我发现8 GB已经绰绰有余了.

当出现错误或错误时它仍然是GC,但不是正常操作.

我相信选项是

-Xmn24g -Xmx26g -XX:SurvivorRatio = 100

使用默认GC.

该应用程序经过优化,每小时生产不到1 GB,因此使用GC运行一天.

  • 你可以分享vm选项,我尝试xmx = xms = 16GB的幸存者比率,如100,但仍然看到GC左右< 5G (2认同)

use*_*037 2

是的,但在 Java 8 中则不然。Java 11 将包括 Epsilon GC ( JEP 318 ),它不会执行任何释放内存的操作。对于任何其他 GC 和足够大的堆,无需触发 StopTheWorld 垃圾收集,但不能保证它不会发生。