JVM のメモリ使用量を読み取るスケジュールされたエグゼキュータを作成しています。実行中の JVM でメモリ統計を取得する 2 つの方法 (Runtime と MemoryMXBean) に遭遇しました。これらのメソッド間の対応は次のとおりです。
memoryMxBean.getHeapMemoryUsage().getUsed() <=> runtime.totalMemory() - runtime.freeMemory()
memoryMxBean.getHeapMemoryUsage().getCommitted() <=> runtime.totalMemory()
memoryMxBean.getHeapMemoryUsage().getMax() <=> runtime.maxMemory()
MemoryMXBean によって提供される追加のヒープ以外のメモリ使用量に関する情報を除いて、ランタイムよりもヒープを優先する必要がある理由、またはその逆の理由はありますか?