gpt4 book ai didi

java - 对于 1GB 堆,在可视 VM 中运行计算保留大小需要多长时间?

转载 作者:IT王子 更新时间:2023-10-28 23:34:28 24 4
gpt4 key购买 nike

我有一个来自 Java 进程的 1 GB 堆转储,但堆空间已用完。我已将堆上传到 java6 发行版附带的 jvisualm 中。我大约在 16 小时前开始了“计算保留大小”过程,它仍在运行。运行 1GB 堆上前 20 个对象的计算保留大小需要多长时间?我应该期望它完成吗?

最佳答案

这似乎在我的机器上也需要很长时间,但我从任务管理器中注意到似乎什么都没有发生了(低 CPU 使用率、磁盘 I/O)。原因是尽管进度指示器一直显示动画,但根据日志文件,该操作被静默中止。

要打开日志,我使用了以下步骤:

  • 点击帮助
  • 点击关于
  • 点击日志文件

这显示在日志的底部:

SEVERE [org.openide.util.RequestProcessor]
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.HashMap.newNode(HashMap.java:1734)
at java.util.HashMap.putVal(HashMap.java:630)
at java.util.HashMap.put(HashMap.java:611)
at java.util.HashSet.add(HashSet.java:219)
at org.netbeans.lib.profiler.heap.DominatorTree.intersect(DominatorTree.java:279)
at org.netbeans.lib.profiler.heap.DominatorTree.computeOneLevel(DominatorTree.java:114)
at org.netbeans.lib.profiler.heap.DominatorTree.computeDominators(DominatorTree.java:64)
at org.netbeans.lib.profiler.heap.HprofHeap.computeRetainedSize(HprofHeap.java:537)
at org.netbeans.lib.profiler.heap.HprofHeap.computeRetainedSizeByClass(HprofHeap.java:594)
at org.netbeans.lib.profiler.heap.ClassDump.getRetainedSizeByClass(ClassDump.java:102)
at org.netbeans.modules.profiler.heapwalk.HeapFragmentWalker.computeRetainedSizes(HeapFragmentWalker.java:100)
at org.netbeans.modules.profiler.heapwalk.ClassPresenterPanel$1$1.run(ClassPresenterPanel.java:187)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1393)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2003)

默认情况下,我的 64 位 Java VM Heapsize 将限制为我计算机内存的 25%(甚至是更低的 VisualVM 内置限制)。为了在下一次尝试中解决这个问题,我将再次尝试像这样启动 VisualVM:

jvisualvm.exe -J-Xmx16g

在此之后日志在启动时显示:

Heap memory usage: initial 24,0MB maximum 14563,6MB

关于java - 对于 1GB 堆,在可视 VM 中运行计算保留大小需要多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8316002/

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