2012-05-09 8 views
8

JVMのメモリ使用量を読み取る予定の実行プログラムを作成しています。私は、実行中のJVMのメモリ統計情報を取得するには二つの方法に遭遇してきた - ランタイム& MemoryMXBeanではを、そのメソッドの間、以下の対応を:Javaでのメモリ統計の取得:ランタイムvs. MemoryMXBean

memoryMxBean.getHeapMemoryUsage().getUsed()  <=> runtime.totalMemory() - runtime.freeMemory() 
memoryMxBean.getHeapMemoryUsage().getCommitted() <=> runtime.totalMemory() 
memoryMxBean.getHeapMemoryUsage().getMax()  <=> runtime.maxMemory() 

MemoryMXBeanではにより提供される追加の非ヒープメモリ使用状況の情報を除き、ランタイムよりも好きな理由があるのでしょうか?

答えて

2

ありません。 JMX Beanは外部からアクセスすることができ、 hyperic(またはnagios)のような管理ツールを対象としています。これは、とにかくRuntimeに委譲されます。

+0

はい。どちらの方法も、使用されたメモリとまったく同じ値を返します。 – huljas

関連する問題