自分の .Net サーバー プロセスが使用しているメモリの量を調べようとしています (監視とログの目的で)。
私は使用しています:
Process.GetCurrentProcess().PrivateMemorySize64
ただし、Process オブジェクトには、使用されているメモリ領域を読み取ることができるいくつかの異なるプロパティがあります。Paged、NonPaged、PagedSystem、NonPagedSystem、Private、Virtual、WorkingSet です。
そして、「ピーク」:これは、これらの最後のピークがこれまでに取った最大値を保存するだけだと推測しています。
各プロパティの MSDN 定義を読んでも、あまり役に立ちませんでした。メモリの管理方法 (ページングと仮想に関する限り) に関する私の知識は非常に限られていることを認めなければなりません。
したがって、私の質問は明らかに「どちらを使用する必要がありますか?」であり、答えは「場合による」であることはわかっています。
このプロセスは基本的に、起こっていることのメモリに一連のリストを保持しますが、他のプロセスはそれと通信し、何かを照会します。これが実行されるサーバーが大量の RAM を必要とすることを期待しているので、内部に保持されているリストのサイズと比較して RAM 要件を推定できるように、このデータにクエリを実行しています。
だから...どれを使うべきですか?なぜですか?