gpt4 book ai didi

java - 如何在不先进行垃圾收集的情况下在 Java 5 上进行堆转储?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:33 24 4
gpt4 key购买 nike

我们有一个运行 Java 5 的长时间运行的服务器应用程序,对它进行分析我们可以看到随着时间的推移老年代增长缓慢。它已在完整 GC 上正确释放,但我希望能够使用堆转储查看 Eclipse MAT 中无法访问的对象。我已经使用 +XX:HeapDumpOnCtrlBreak 成功地获得了堆转储,但是 JVM 总是在转储堆之前执行 GC。显然这不会发生在 Java 6 上,但我们现在停留在 5 上。有什么办法可以避免这种情况吗?

最佳答案

使用 jconsole 或 visualvm 或 jmc 或 ... 其他 jmx 管理控制台。在 com.sun.management 中打开 HotSpotDiagnostic。选择方法dumpHeap 并输入两个参数:

  • 转储文件的路径
  • (true/false) 仅转储 Activity 对象。使用 false 转储所有对象。

请注意,转储文件将由您连接的 JVM 写入,而不是由 JVisualVM 写入,因此如果 JVM 在不同的系统上运行,它将写入该系统。

enter image description here

关于java - 如何在不先进行垃圾收集的情况下在 Java 5 上进行堆转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268336/

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