Minor GC是用来清理Eden空间的吧? 但我使用 jstat 来查看我的 GC 日志。 当 Eden 空间已满 90% 时,有 95% 的 Minor GC 发生。 然而有时我发现伊甸园空间几乎是空的。
我使用jdk7和g1gc。我的程序每秒处理五万个请求。 GC 引起的每次短暂暂停都是显而易见的。
出于哪些其他原因,GC 会决定执行次要回收?
最佳答案
Jstat 显示采样数据。例如,如果您运行 jstat -gc <pid> 2s
,jstat 每两秒显示一次堆和 gc 状态的快照。
因此,当收集发生时,eden 很可能处于 100%,但您在 jstat 中看到的快照是在收集发生后一段时间拍摄的。
还有其他解释,例如 G1 收集器在 eden 100% 满之前收集它。当 eden 似乎未满时,分配大对象也可能会触发 gc。
关于java - Minor GC但Eden空间未满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254877/