gpt4 book ai didi

java - 我怎么知道谁调用了 System.gc()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:08 25 4
gpt4 key购买 nike

在一个正在运行的系统中,我们看到很多“Full GC (System)”,这表明有人触发了 System.gc()。

有没有办法找出代码中发生这种情况的位置?

我确实搜索了所有可用的源,但没有发现任何可疑的东西,所以它一定在某个地方,可能是在同一个容器中运行的另一个应用程序或容器本身。

最佳答案

您可以更改运行时类以记录在文件中调用 gc() 的位置(System.gc() 调用 Runtime.gc())

为此,编辑一个副本,编译它并将其添加到您的 -Xbootclasspath/p:

然而,大量的 Full GC 更有可能是由于幸存者空间不足或完全永久空间造成的。

你能试试运行吗

jstat -gccause {pid} 5s 

关于java - 我怎么知道谁调用了 System.gc()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com