java - 当 Eden 未满时发生 Minor GC。当Eden未满时,会出现Minor GC的原因是什么?

标签 java garbage-collection jvm heap-memory

我正在使用 CMS 收集器。

我通过 GC 日志看到了次要 GC。但我发现当 Eden 未 100% 满时,就会发生小型 GC。这会发生吗?是否有任何参数/配置可以避免这种情况并利用 100% Eden。?

最佳答案

伊甸园已满,并不意味着最后一个字节之前的所有内容都被占用。

如果您查看 GC 日志,第一个集合会显示年轻代
9857949K->177992K(11684160K)

这意味着年轻代已占用 11'684'160 kB 可用总量中的 9'857'949 kB(84.4%) )。

随后我们看到9914824K->139689K(11684160K),即84.8%,最后是9876521K->115958K(11684160K),即<强>84.5%。

因此,年轻一代对我来说看起来已经足够了。考虑到新对象创建速度、可用的 Survivor1 和 Survivor2 空间以及其他因素的数量,完全有可能 84% 已满,足以开始行动。

关于java - 当 Eden 未满时发生 Minor GC。当Eden未满时,会出现Minor GC的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38357477/

相关文章:

java - 如何使用 NetBeans 插入后自动刷新绑定(bind)到 Mysql 数据库的 JTable

java - 使用 Spring 注释配置时无法加载 html 页面

java - 如何使用 Apache 负载均衡器配置 Tomcat 实例故障转移设置?

java - 在 Eclipse 中如何使用 CodePro 的合约?

java - 什么是字节码以及 JVM 如何处理它们

Java 垃圾收集器 : top object classes promoted (by size)?

java - 并发模式失败,而 Full GC

java - 如何在 Java 9+ 中设置默认垃圾收集器?

java - 如何访问jvm默认KeyStore?

java - Ant 可以同时启动两个 java 应用程序吗?