2

我对 runhprof 输出感到好奇?我主要关心内存部分。看起来同一类有多个条目。为什么会这样。

有没有办法让 hprof 打印特定类(该类的实例)在内存中占用的内存量。每个类一个值。

另外,除了“帽子”之外,您还使用什么工具来分析输出?

我用 jvm arg 运行了 java 命令:

-Xrunhprof:heap=sites,depth=4,format=a,file=prof/hprof_dump.txt

这是输出的简短片段。某些类在输出中多次列出。

站点开始(按实时字节排序)2009 年 7 月 28 日星期二 19:33:41
          实时分配的堆栈类百分比
 rank self accum bytes objs bytes objs 跟踪名称
    1 29.75% 29.75% 700080 43755 576000016 36000001 307483 java.lang.Double
      2 7.13% 36.88% 167840 5245 370432 11576 300993 clojure.lang.PersistentHashMap$LeafNode
        3 2.09% 38.98% 49296 2054 60048 2502 301295 clojure.lang.Symbol
        4 2.09% 41.07% 49200 3 49200 3 301071 字符[]
        5 1.33% 42.40% 31344 1306 68088 2837 300998 clojure.lang.PersistentHashMap$BitmapIndexedNode
        6 1.10% 43.50% 25800 645 25800 645 301050 clojure.lang.Var
        7 1.05% 44.54% 24624 3 24624 3 301069 字节[]
        8 0.86% 45.40% 20184 841 49608 2067 301003 clojure.lang.PersistentHashMap$INode[]
        9 0.78% 46.18% 18304 572 58720 1835 301308 clojure.lang.PersistentList
       10 0.75% 46.93% 17568 549 17568 549 308832 java.lang.String[]
       11 0.70% 47.62% 16416 2 16416 2 301036 字节[]
4

1 回答 1

2

Eclipse 内存分析器非常出色。非常快速地加载转储文件,生成大量关于堆转储的漂亮报告,让您可以使用类似 SQL 的语言查询对象/类的转储。爱它。

于 2009-07-29T01:52:58.980 回答