我观察到每 60 分钟将“Full GC (System)”消息写入我的日志。当我这样做时:
jstat -gccause {pid} 5s
我看到这是来自对 System.gc() 的显式调用。我正在尝试追踪调用 System.gc() 的代码,因为我怀疑这发生在我的一个依赖项中,而不是我自己的代码中。
我确实意识到我可以使用 -XX:-DisableExplicitGC 禁用显式 GC 调用,但我需要弄清楚调用的来源。我在这里和这里读到这个人能够在调用 gc() 时更改运行时类以记录堆栈跟踪。但我不清楚如何做到这一点。有人可以指出我正确的方向吗?