如果我有足够的内存,我可以启动一个Java应用程序(说明为mMven)单独使用Eden空间直到完成没有任何GC吗?
是的但不是Java 8. Java 11将包括Epsilon GC(JEP 318),它不会释放内存。对于任何其他GC并且具有足够大的堆,不需要触发StopTheWorld垃圾收集,但不保证不会发生。
是的,我已经在Java 6+中为真正的应用程序做了这个。我开始使用24 GB Eden空间,小型幸存者和终身空间。后来我发现8 GB已经绰绰有余了。
当出现错误或错误时它仍然是GC,但不是正常操作。
我相信选项是
-Xmn24g -Xmx26g -XX:SurvivorRatio = 100
使用默认GC。
该应用程序经过优化,每小时生产不到1 GB,因此使用GC运行一天。