Javaアプリケーションの現在のメモリ使用量を計算したいと思います。ただし、次のコードを使用している場合、タスクマネージャーに表示されるものとはかなりの違いがあります。
Runtime rt = Runtime.getRuntime();
long usedMemory = (rt.totalMemory() - rt.freeMemory()) / 1024;
タスクマネージャーによると、プロセスが3.000.000 Kを消費する場合、このコードは、実際にはメモリ使用量が増加したときに、たとえば2.015.203を計算し、1秒後に1.712.296を計算します。
同様の質問によると、コードは問題ないはずですが、タスクマネージャーと比べてなぜこれほど大きな違いがあるのでしょうか。