2009-07-29 2 views
2

私はrunhprofの出力について興味がありましたか?私は主にメモリセクションに心配しています。同じクラスの複数のエントリがあるようです。それはなぜだろう。Java:runhprof出力で複数のオブジェクトが表示されるのはなぜですか?

特定のクラス(そのクラスのインスタンス)がどれくらいのメモリを占有しているかをhprofで取得する方法はありますか?各クラスに1つの値。

また、出力を分析するのに 'hat'の横にどのツールを使用しますか?

私は、JVM引数でjavaコマンドを実行しました:

-Xrunhprof:ヒープ=サイト、深さ= 4、フォーマット=、ファイル=教授/ hprof_dump.txtここ

は、出力の簡単な抜粋です。いくつかのクラスは出力に複数回リストされます。

 
SITES BEGIN (ordered by live bytes) Tue Jul 28 19:33:41 2009 
      percent   live   alloc'ed stack class 
rank self accum  bytes objs  bytes objs trace name 
    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 char[] 
     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 byte[] 
     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 byte[] 

答えて

2

Eclipse Memory Analyzerが優れています。ダンプ・ファイルを非常に迅速にロードし、ヒープ・ダンプに関する素晴らしいレポートを多数作成し、SQLライクな言語を使用してオブジェクト/クラスのダンプを照会できるようにします。大好きです。

+0

ダンプファイルまたはhprofから作成されたファイル。 –

+0

同じものにする必要があります。 –

+0

うん、ちょうどそれを走らせた。完璧なフレーキング。ありがとう。 1.5以降のヒープダンプも使用できます。 –

関連する問題