我正在调查hprof
VisualVM 中的一个文件
服务器正在运行 JDK 1.4.2_30,并且有 1 GB 堆,NewSize 为 200 Mb。
hprof 显示 71% 的堆被 56000 个实例占用,int[]
并且在 VisualVM 中查看时,这些 56K 数组都没有引用
按照我们的说法,如果“没有引用”,这应该被垃圾收集。所以问题是:
a) 有没有办法找出这些参考资料?
b) 这是一个不正确的快照 - 即进行堆转储的操作是否进行了某种 GC?
c) 我们是否应该查看 VisualVM 中的“保留大小”对象?
作为更新- 我们仍然不知道这些int[]
是什么,但下一个最大的对象是 Pool 中的 Weblogic 内部 EJB 引用,我们发现其中一个不正确的设置已将内存利用率从早期频繁的 Full GC 降低到 30%