java - Minor GC但Eden空间未满

标签 java garbage-collection

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/

相关文章:

java - getImage()/drawImage() 使 Java-Applet 停止工作

java - 对实习生字符串、字符串池和永久空间的垃圾收集

Java线程垃圾回收

Java垃圾收集器

java - Selenium Chrome 驱动程序 v92 : No connection (in v91 everything works fine)

java - 为什么在下面的代码中,长类型变量在转换之后和转换之前给出不同的答案,因为两者都是长类型?

java - 为什么带有返回类型的 Java 方法引用与 Consumer 接口(interface)匹配?

java - 从 hashmap 打印出坐标

Android AsyncTask 启动另一个 AsyncTask

java - XML Pull Parser 和 SAX Parser 有什么区别