【スキン】 Rainmeterのメモリ表示について

  • 2008年08月27日(水)

web拍手やメールなどから、Rainmeterスキンで表示されている「SwapMem」について、
「スワップメモリを0に設定してるのに、なんで表示されるの?」とときどき訊かれます。
今日はそのへんを少し、私が理解しているなりに説明してみます。

実は、Rainmeterスキンで表示されている「SwapMem」は、スワップメモリではありません。
正しくいえば「コミットチャージの合計値」です。(Xpの場合)
実際にタスクマネージャとスキンを表示させて、見比べてみましょう。

※メモリは2GB搭載し、スワップメモリは0にしています。

ご覧の通り、コミットチャージの合計値「643944KB」をMB単位にすれば(1024で割る)、
スキンの「SwapMem」で表示されている「629MB」になります。(643944÷1024=628.85)

 ちなみに「Memory」は、「物理メモリ」の「合計」から「利用可能」を引いた値です。
 こんな感じですね。(2096176−1245164)÷1024=831.06
 ※取得するタイミングは微妙にずれるので、1MBのちがいは無視してください。

ところで、「コミットチャージ」とはなにかというと、稼動しているプログラムが「これだけメモリを使いたいんで、確保しちゃいますよ」と要求してくるメモリのことです。タスクマネージャにある「合計」はそれら全ての合計値で、「制限値」は物理メモリと仮想メモリの合計値、「最大値」は電源を入れてからいままでで一番要求された「合計」の値になります。

つまり理屈でいえば、普通に言われるスワップメモリ(仮想メモリ)は、タスクマネージャの「コミットチャージ」の「制限値」から「物理メモリ」の「合計」を引いた値になります。(私はスワップメモリを0にしているので、どちらもほぼ同じ値です。少しちがうけど何故かは知りません)

「ってことは、スキンもスワップメモリじゃなくてコミットチャージって表示しなきゃダメじゃん」
ということになりますが、タスクマネージャをもう一度見てください。「PF使用量」が「628MB」となってますよね。これ、右のグラフを見ればわかるとおり、「ページファイルの使用量」です。
そしてその値はコミットチャージの合計と同じ(643944÷1024=628.85)になっています。

つまりタスクマネージャから見れば、「コミットチャージもページファイルも同じ」ということになります。NT系のWindowsでは、メモリマネージャが管理している領域はすべて「ページファイル」と呼ばれるんです。物理メモリだとか仮想メモリだとかは全然関係ないんです。

そしてちょっとググってみればわかりますが、世間的にもマイク□ソフト的にも
「ページファイル」=「スワップファイル」ということになっていますから‥‥
「コミットチャージ」=「ページファイル」=「スワップファイル」
という図式が成り立ってしまうんですね〜。だからスキンの表示も「Swap」でいいんです。

「無茶苦茶な! 全然意味がちがうじゃん!」と思ったあなた。私もそう思います。

ていうかぶっちゃけね、ここに書いたことは私自身がそう無理やり納得しているだけのことで、ホントにこうなのかはわからないんです。誰かわかる人いませんかねぇ‥‥。

でもね、Rainmeter自体がこの値を「SwapMemory」と取得してるから、スキンに表示するときもそう表示するのが「しきたり」というか「作法」になってるような気がします。
私自身は、「SwapMem」は必要とされているメモリの量であり、これが「Memory」より多くなるようなら仮想メモリを設定しないといけないかなぁ‥‥と思いながら参照しています。

このことは‥‥もう3年半ぐらい前になるのかな。「まきまき」スキンを作っていたときにスワップメモリを0に設定してみて表示がおかしいことに気がついたんですが、当時のメインマシンは2000で私の知識も浅く、よくわからなかった部分がありました。いまはXpに変わり、少しは理解も深まりましたけど、それでも100%理解しているわけではありません。
‥‥誤解も深まってるかもしれませんしねw