回答:
それほど単純ではないのではないかと思います。特に、Privateバイトは、提起した質問に答えるのにあまり役に立ちません。
最初に留意することは、メモリページがメインメモリまたは外部ストレージに存在する可能性があることです(最近では「ディスクページング」または「スワップ」)。2つ目は、プロセスのフットプリントにメモリのプライベートページがありますが、他のプロセスが同時に使用している共有ページのオブジェクトも使用することです。
ワーキングセットは、現在メインメモリに保存されているプロセスに属するページのサイズです。プロセスで使用されるメモリのページがページファイルに移動されると、ワーキングセットメトリックから削除され、メインメモリに呼び出されたときに再び追加されます。
ただし、ワーキングセットは、プロセスが所有するメモリだけを指すわけではありません。プロセスは多くの共有メモリオブジェクトを使用し、これらのオブジェクトのサイズはstatに反映されます。残念ながら、2つのプロセスが1MBオブジェクトを共有する場合、両方のプロセスはワーキングセットで1MBの割り当てを示します。したがって、すべてのワーキングセットを追加すると、1MBオブジェクトが2回記録され、すべてのワーキングセットサイズの累積が極端な場合、使用可能なラムのサイズを超えるように見えます。詳細はこちらをご覧ください:http : //cybernetnews.com/cybernotes-windows-memory-usage-explained/
プライベートバイトとは、プロセスのプライベートメモリフットプリントがスワップのために完全にページアウトされた場合に、プロセスに割り当てられる(必ずしも使用されるとは限らない)ページファイルスペースの量を指します。ほとんどの場合、プロセスは完全に(またはまったく)ページファイルに常駐しているわけではないため、プライベートバイトにはさらなる割り当てのための「余地」があるように見えます。ただし、そうではありません。
ただし、プライベートバイトはプロセスのプライベートメモリのみを参照するため、この値は共有リソースを反映しない場合があります(共有リソースが現在このプロセスでのみ使用されている場合でも)。
「Working set Private」(バージョンに応じてプロセスエクスプローラーの「WS Private bytes」または「Private WS」)がおそらく使用に最適なメトリックです。ページファイルとは関係がないため、物理RAMに与えるプロセスの影響を正確に表すことができ、共有オブジェクトを二重にカウントすることはありません。共有オブジェクトは一度だけ集計されます(それらを作成したプロセスのみ)が、それはまた、プロセスが別のプロセスによって作成された共有オブジェクトを使用することを単一プロセスの観点から記録していないことを意味しますマシン、または共有オブジェクトの別のプロセスインスタンスを使用する代わりに、共有オブジェクト自体を作成する必要がある状況。Windowsタスクマネージャーは、メモリ使用量メトリックとしてワーキングセットプライベートを使用します。
それが役立つことを願って