我对 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 字节[]