私の場合、64ビットWindows 7で実行されている32ビットプロセスの現在のメモリ使用量を取得するためにこのメソッドを使用する方法について、SOで多くの参照を見つけました。私のコードは
System.Diagnostics.Process[] processes =
System.Diagnostics.Process.GetProcessesByName("ProcessName");
if (processes.Count() != 1)
{
throw exception here, only one instance allowed;
}
System.Diagnostics.Process process = processes[0];
memoryUsed = process.WorkingSet64 / (1024f * 1024f);
私のアプリケーションは、ヒープ メモリを動的に割り当てて解放します。これは、標準の Windows タスク マネージャーで確認できます。ただし、上記のコードを呼び出すたびに、取得された使用済みメモリは常に以前のカウントよりも多くなります。また、TaskManager とは一致しません。タスク マネージャーによると、プログラムで取得した 280 MB に対して、約 249 MB です。
私は何かばかげたことをしていますか?