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
会使您的应用程序随着时间的推移越来越慢。
另请参阅:
我目前使用的是 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
会使您的应用程序随着时间的推移越来越慢。
另请参阅: