12

Javaプロセスによって特定の時間に使用されている合計ヒープサイズを調べたいので、を使用する必要がありますjmap

の出力jmap -heap <pid>は私に次のようなものを与えます:

プロセスID2899に添付して、お待ちください...
デバッガーが正常に接続されました。             
サーバーコンパイラが検出されました。                   
JVMバージョンは14.2-b01です                     

スレッドローカルオブジェクト割り当てを使用します。
2スレッドの並列GC         

ヒープ構成:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize = 1258291200(1200.0MB)
   NewSize = 1048576(1.0MB)      
   MaxNewSize = 4294901760(4095.9375MB)
   OldSize = 4194304(4.0MB)         
   NewRatio = 8                       
   SurvivorRatio = 8                       
   PermSize = 16777216(16.0MB)       
   MaxPermSize = 67108864(64.0MB)       

ヒープ使用量:
PSヤングジェネレーション
エデンスペース:        
   容量=119013376(113.5MB)
   使用済み=117277608(111.84464263916016MB)
   無料=1735768(1.6553573608398438MB)
   98.54153536489882%使用
宇宙から:
   容量=131072(0.125MB)
   使用済み=81920(0.078125MB)
   無料=49152(0.046875MB)
   62.5%使用
宇宙へ:
   容量=131072(0.125MB)
   使用済み=0(0.0MB)
   無料=131072(0.125MB)
   0.0%使用
PSオールドジェネレーション
   容量=954466304(910.25MB)
   使用済み=80791792(77.04905700683594MB)
   無料=873674512(833.2009429931641MB)
   8.46460390077846%使用
PSパーマ生成
   容量=57671680(55.0MB)
   使用済み=41699008(39.76727294921875MB)
   無料=15972672(15.23272705078125MB)
   72.30413263494319%使用

これらの値の式を使用して、使用されている合計メモリを調べることはできますか?

Linuxでこれを見つける方法に関する他の提案は歓迎されますがjmap、それらよりも好まれます。

ありがとう

4

2 に答える 2

3

メインウィンドウに「合計ヒープ使用量」が表示されているようなものと比較しようとするとjconsolejvisualvm「使用済みエデンスペース」と「使用済みps旧世代スペース」を追加することで、そのグラフが示すものと同等のものが得られることがわかりました。前述のプログラム-それは私が今続ける傾向があるものです。

于 2010-07-12T15:59:24.840 に答える
2

以下のエントリにHeap Usage:は、JVM 内のさまざまなパーティション分割されたメモリ プールが、それらの最大サイズ、使用済みおよび空き領域とともに一覧表示されています。リストされたプールでは考慮されていない JVM オーバーヘッドがあるかもしれませんが、さまざまなused:値を合計するだけで、合計メモリ使用量の適切な値が得られます。

于 2010-02-24T08:35:53.130 に答える