Memory 使用量

疑問の尽きない話 - himadatenodeの日記 で、HDN の方が「減ってないんじゃないの?」と書いていらしたので、誤解されていないか少し不安になってきました。以前、私が書いたの記事を読むと、SetProcessWorkingSetSize() を『 Memory 使用量偽装関数』と解釈されてもおかしくないので、追記しておきます。( 注意 : 以下の文章は推測で書かれています。なので、不安な部分は語尾を「はずです」にしておきました。)

まず、最小化したとき、物理 Memory ( RAM ) 使用量は減っているはずです。

Windows は、最小化したときに「元に戻すまでは使わないだろう」と RAM 側の内容を HDD 側 ( Page File ) に書き出すはずです。確かに元に戻すまでは使用しないはずですし、そんな Application に RAM を使わせているのは勿体無い話ですからね。ただし、書き出してしまったものは、使うときには RAM 側に書き戻さなければいけません。なので、元に戻すときには少し時間がかかるはずです。

なにが言いたいかというと『何の目的もなく「RAM を使用しないことがいいことだ!」と HDD 側に書き出すことがいいこととは、私には思えない』ということです。

特に cltc の場合は速度を遅くされても嫌なので、できるなら RAM 側に存在してほしいのです。もし他の Application で必要なら Windows が勝手に cltc の使用している RAM 側から HDD 側に書き出してくれるはずです。それは cltc が考えるべきことではないはずです。なので、私は cltc で SetProcessWorkingSetSize() を使用していません。

Firefox で見ていない Page のために RAM が使用され、今見ようとしている Page の表示に時間がかかる、というのであれば、RAM -> HDD という方法もいいはずです。十分に RAM を積んでいるのであれば ( RAM の容量不足による速度低下が起きていないのであれば ) 、あまりそういう Memory 使用量については意識しない方がいいと、私は思います。

( 当然のこととして書いていませんが RAM と HDD なら RAM の方が読み書きが早いです。なので早く動作させたいなら情報は RAM においておくべきなんです。 )