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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以使用如此大的Eden空间启动JVM,它可以在没有任何GC的情况下运行完成。假设我有一堆免费的mem相关的知识,希望对你有一定的参考价值。

如果我有足够的内存,我可以启动一个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运行一天。

以上是关于我可以使用如此大的Eden空间启动JVM,它可以在没有任何GC的情况下运行完成。假设我有一堆免费的mem的主要内容,如果未能解决你的问题,请参考以下文章

JVM的GC实现详解

理解JVM之内存分配以及分代思想实现

jvm内存结构

JVM 内存分配与回收策略

JVM学习十:JVM之垃圾收集器及GC参数

JVM内存分配与回收