System.gc() 在 Wildfly 中调用

System.gc() calls in Wildfly

我目前使用的是 Wildlfly 10.1。在生产中,刚刚发现我们有很多 gc 暂停时间。对 gc 日志的分析表明,95% 的 gc 运行是由 System.gc() 调用触发的。我们的应用程序代码不调用它们中的任何一个。

这是 Wildfly 的功能吗?

或者有人能给我指出正确的方向,看看这些 System.gc() 调用是否有意义吗?

当然,我知道有很多措施可以优化 gc 行为。我只是问自己为什么有这么多 System.gc() 电话。

如果您想找到 System.gc 的调用者,最可靠的方法是附加调试器并在其上设置方法入口断点。

System.gc() 由 Java RMI 或更具体地由 sun.misc.GC class - Sourcecode

调用

默认间隔为 1 小时。您可以使用这些参数进行设置:

-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000

设置 -XX:+DisableExplicitGC 会使您的应用程序随着时间的推移越来越慢。

另请参阅: