为什么我在使用G1GC时获得高“Ref Proc”时间



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

我知道我可以很容易地修复它使用-XX:+ParallelRefProcEnabled。我认为我可以信任JVM为我做一些琐碎的应用程序。我遗漏了什么?

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

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

最新更新