2012-02-05 8 views
4

VMコマンドラインを使ってallocated heapの最大サイズを取得できるのだろうかと思います。VMコマンドラインを使用して実行中に割り当てられた最大ヒープサイズを確認しますか?

今から私はNetbeans Profilerを使って得ることができますが、余分なアプリケーションを起動する必要はなく、結果を得ることが好きです。私もこの方法を使用してい

public void printMemUsage(){ 
     double currentMemory = ((double)((double)(Runtime.getRuntime().totalMemory()/1024.0)))- ((double)((double)(Runtime.getRuntime().freeMemory()/1024.0))); 
     System.out.println("Current memory usage in kilobytes :"+currentMemory); 
} 

私はあまりにも最大ヒープサイズを取得するためにこれを使用することができると思うが、私はそれを非常に信頼できるかどうか分かりません。

-verbose:gcを-XX:

は、私は現在、これらのコマンドラインを使用+ PrintGCDetails -XX:+ PrintGCApplicationConcurrentTime -XX:+ PrintGCApplicationStoppedTime

GCについての良い情報を得るために活動、若い世代、古くて恒久的。しかし、コレクションが発生したときの現在の合計ヒープスペースを知ることができます。

他のコマンドラインを使用して割り当てられた最大ヒープスペースを取得する方法はありますか?

答えて

2

あなたはそれが各MemoryPool(別名世代)についての情報を得るためにそれを使用すると、さまざまなイベントが発生したときに通知を取得する方法について説明などの詳細についてthe javadocを参照してください、MemoryMXBeanを使用する必要があります。

+0

ありがとうございます! Btwそれは本当に**私が求めているものではありません。私は上記の 'printMemUsage()'メソッドで**同じ結果**を取得します。 'MemoryMXBean'の他のいくつかのメソッドが助けてくれるので+1してください;) –

関連する問題