Mark Russovich の講演 "Mysteries of Memory Management Revealed" を見たことがある人なら誰でも知っているように、vmmap ツールは、他のほとんどのツールが認識していないように見えるプロセス制限 (vanilla 32 ビット ウィンドウでは 2GB) に対してカウントされるものを表示できます。
実際の合計メモリ サイズ (プロセスの制限に密接に関連するもの)をプログラムで監視できるようにして、少なくともプロセスの制限に近づいたときに何が起こっているかをログに記録できるようにしたいと考えています。vmmap がこれを行う方法について公開されている情報はありますか?
... また、なぜこの情報は入手が難しいのでしょうか??
それについて私が知っていること(AFAIK)では、全体像がわかりません。
- ::GetProcessMemoryInfo は、プライベート メモリの使用状況に関する情報のみを返すようです
- System.Diagnostics.Process.VirtualMemorySize64 は、まだ vmmap によって示される合計と完全には一致しないかなり大きな数を返します。