- ベストアンサー
パフォーマンスモニタのメモリについて
- パフォーマンスモニタのメモリについて理解しましょう。Private BytesとWorking Setについて認識を確認します。
- Private Bytesは他のプロセスと共有されない仮想メモリのサイズ、Working Setはプロセスが使用している物理メモリのサイズです。
- Working Setは他のプロセスと共有されず、Private BytesとWorking Setを足した値がプロセスが使用しているメモリの合計です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず前提 該当プロセスの仮想アドレス空間に割り当てられている領域の全合計をVirtual Bytesと呼びます。 Virtual Bytesの値のみでは該当プロセスにおいて物理メモリがどの程度割り当てられているかは一切わかりません。 また、全プロセスのVirtual Bytesの合計値はOSとして認識している物理メモリとスワップ領域の合計値を超えることはできず、 32bit OS上ではデフォルトの設定では1プロセスあたりのVirtual Bytesは2GBを超えることはできません。 Virtual Bytesのうち、ほかのプロセスから共有されない領域をPrivate Bytesと呼びます。 Private Bytes : タスクマネージャで表示される「仮想メモリ サイズ」の値(XP以前の場合)や 「コミット サイズ」の値(Vista以降の場合)、パフォーマンスモニタの process オブジェクトのカウンタとして確認することができます。 プログラムが利用するデータ等は主にこの中に含まれていますが、Virtual Bytesの中でもメモリマップされたファイル領域や、 実行可能ファイル(.exe)とライブラリ(.dll、.lib)がロードされたイメージ領域の一部等は Private Bytes に含まれないため プログラムによってはPrivate BytesよりもWorking Setの値のほうが大きくなる場合もあります。 Private Bytes : Virtual Bytesのうち、物理メモリに割り当てられている領域のことで 実際にプロセスが必要しており、他のプロセスと共有できないサイズ。 ハードディスクにスワップされているページや物理メモリ上の領域を問わない。 (物理メモリで使用分+HDDスワップ分) Working Set : Virtual Bytesのうち、物理メモリに割り当てられている領域のこと。 そのプロセスで使用しているメモリサイズ(仮想メモリ含む)のうち 実際のメモリ上で確保されている領域 Working Setはその他プロセスから共有されないPrivate Working Setと 共有可能なSharable Working Setの合計のことを言います。 Working Set = Private Working Set + Sharable Working Set >Private Bytesと Working Setを足した値がそのプロセスが使用しているメモリの合計ということでしょうか。 その計算は成り立たないことがお分かりい頂けると思います。
お礼
もう一度、整理していたら理解することができました。 1.Private Bytes・・・他のプロセスとは共有されないメモリ領域。物理メモリ、ページファイルを問わないため、物理メモリ+HDDスワップ領域となる。 2.Working Set・・・・そのプロセスに割り当てられた物理メモリ領域。Private Working Set(他のプロセスとは共有されない物理メモリ)+ Sharable Working Set(他のプロセスと共有される物理メモリ)を足した値が、Working Setとなる。
補足
ありがとうございます。 「Process Explorer を使う。」サイトで「Private Bytes … プロセスが占有している仮想メモリ量」、「仮想メモリ量 = 物理メモリ量 + ディスクスワップ量」という 記載があり、「仮想メモリの容量をスペックに合わせて変更する 」サイトでは、「仮想メモリは、ハードディスク上に記録されるメモリで、物理メモリの補助的な役割を担い、 「ページングファイル」とも呼ばれています。」という記載があります。 そのため、仮想メモリはハードディスクに搭載されるメモリのため、実際に物理メモリではないと解釈するのですが、「仮想メモリ量 = 物理メモリ量 + ディスクスワップ量」 もあるため、両方を合わせて理解しようとすると、説明に矛盾がでるため、理解ができず、Private Bytes、Working Setの区別ができずにおります。 また、仮想アドレス空間とは仮想メモリにしようするため、物理メモリに関係あるのでしょうか。物理メモリの場合、実アドレス空間ということではないでしょうか。 アドレス空間の理解ができていないため、この点が理解を難しくしている要因と思っております。 -------------------------------------------------------- Process Explorer を使う。 http://rms-099.hatenablog.jp/entry/20120503/1367560923 --------------------------------------------------------- -------------------------------------------------------- 仮想メモリの容量をスペックに合わせて変更する http://jisaku-pc.net/speed/set_04.html --------------------------------------------------------