为什么我在使用G1GC时会得到很高的“Ref Proc”时间

时间:2015-08-10 16:18:25

标签: java garbage-collection jvm

我正在使用G1GC来处理我的java应用程序。当使用G1GC(供应商:Oracle)的默认GC配置时,我几乎总是注意到非常高(在5秒到70秒之间的任何时间)Ref Proc次,主要是在年轻一代疏散期间。

我知道我可以使用-XX:+ParallelRefProcEnabled轻松修复它。我以为我可以相信JVM可以为我做一些琐碎的应用程序。我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

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

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