gpt4 book ai didi

jakarta-ee - 如何在 Oracle JRE 中跟踪方法 System.gc()

转载 作者:行者123 更新时间:2023-12-03 09:35:26 26 4
gpt4 key购买 nike

我有一个我知道正在执行显式 GC 调用的应用程序:System.gc()Runtime.gc() .我已经通过使用 -XX:+DisableExplicitGC 禁用显式 GC 来验证这一点。并且完整的 GC 消失了。

我检查了代码,似乎没有找到 System.gc()Runtime.gc()随时随地打电话。这是一个大型项目,所以我可能错过了它,或者它正在某个库中被调用。

我知道使用 IBM JRE 您可以运行 traces关于方法。

例子:

-Xtrace:trigger=method{java/lang/System.gc,javadump}

是否可以对 Oracle JRE 执行相同的操作以帮助查找调用它的位置?我没有能力在带有断点的 Debug模式下运行它。 :(

另外,我知道进行这些 GC 调用的不是 NIO 或 RMI。

最佳答案

您可以尝试使用 AOP 为这些方法定义一个 @Before 切入点,然后创建一个 Exception 对象并抛出它或记录/邮寄它的堆栈跟踪。请注意,您可以检查堆栈跟踪以仅对相关情况采取行动(即在本地进行一些实验以找出“正常”非显式堆栈跟踪可能是什么样的)。

关于jakarta-ee - 如何在 Oracle JRE 中跟踪方法 System.gc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236923/

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