java - 为什么我在使用 G1GC 时会变高 `Ref Proc` 次

标签 java garbage-collection jvm

我正在使用 G1GC 来处理我拥有的许多 Java 应用程序。当对 G1GC(供应商:Oracle)使用默认 GC 配置时,我几乎总是注意到在年轻代疏散期间,Ref Proc 时间非常长(5 秒到 70 秒之间)。

我知道我可以使用 -XX:+ParallelRefProcEnabled 轻松修复它。我认为我可以相信 JVM 会为我做正确的事情来处理琐碎的应用程序。我在这里缺少什么?

最佳答案

可能是因为您的应用程序或其依赖项之一使用终结器(直接字节缓冲区和一些 IO/ native 绑定(bind)对象)或软/弱/幻像引用并以很高的速率创建它们。

您可以尝试进行堆转储并查看堆上存在哪些可访问但不可强访问的对象。

关于java - 为什么我在使用 G1GC 时会变高 `Ref Proc` 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924478/

相关文章:

java GC 老年代填充速度很快

java - 在java中删除一个对象,仅在数组列表中引用它

debugging - JVM 是否监听 IPv6 调试端口?

java策略不同的论点

java - JPanel 不显示在 BorderLayout 中

java - 无法在 java 中连接 REST api

JavaFX 2 将 ImageView 拖动到按钮

.net - 委托(delegate)总是固定的吗?

java - 关于TLS 1.2和jdk版本的困惑

java - 设置-XX :MaxRam