とあるアプリのスレでVistaのSuperFetchは有効なものなのか議論がおきてそう
というレスをみて、そもそもSuperFetchという機能がよく分かっていなかったので、調べてみた

機能的なもの意味合いは、windows起動時に使用頻度が高いアプリやファイルの先読み的なもので
それをメモリ上に保つ。
アプリの起動の高速化につながるのと、メモリが無駄にあまってしまう領域を使用することができる。
でも他のアプリ(メモリ上に保ったのと関係ないアプリ)を起動したときには簡単に破棄できるので、
スワップを起こし易くするわけではない。

http://pc11.2ch.net/test/read.cgi/win/1178624264/からの引用

たぶん図に描いて説明しないと理解できないんだろうな。

|==========A—–| ・・・①

|から|までが物理メモリ。=の部分がアプリで
使用している部分-の部分が空きメモリとする。

この状態で新たに===のメモリを使用する。するとこうなる。

|=============A–|

さらに=====のメモリを使用する。
|===============A| (=== ← スワップ)・・・②

当然物理メモリが足りないから=三つ分のスワップが発生する。
つまりHDDに使用頻度が低い部分を書き出す。またHDDに書き出した部分を使用する場合には入れ替える。
それにより速度低下が発生する。

252
名無し~3.EXE sage 2007/12/01(土) 20:47:54 ID:BEnuKdnI(4)
ここからがSuperFetchの説明。

|==========A—–|
一番初めの①状態。

SuperFetchでは(CPU・HDDが作業していないときに)
空きメモリに、今までの過去のデータから良く使うアプリを読み込んでおく。
|==========Aooooo|   oがSuperFetchによるデータ。
この状態で===のメモリを使用する。
そうすると、空きメモリ-が無いからスワップが発生する・・・というのは間違い!

SuperFetchのデータはHDDから読んだデータそのまま・・・つまりすでに書き込み済みなのだから
わざわざ書き込む必要は無い。単に捨てるだけ。速度低下は発生しない。

また、===の部分がoooooの中にすでに含まれている・・・つまり先読みがヒットした場合
速度が上昇する。これがSuperFetchの効果
|=============Aoo|

さらに=====のデータを使用すると、当然スワップが発生するが、
それは以前の②と同じことであり、別にSuperFetchにより
スワップしやすくなっているわけではない。

253
1
名無し~3.EXE sage 2007/12/01(土) 20:59:44 ID:BEnuKdnI(4)
タスクマネージャの正しい見方も説明しておこう。
task
ここに出てくる、物理メモリの「合計」の 1022MB が搭載物理メモリ容量。
「キャッシュ済み」の 587MB というのがSuperFetchによるキャッシュデータ
「空きメモリ」の 40MB と言うのが本当に何にも使われていないメモリ。

Vistaを起動して、すぐにタスクマネージャを開けばわかるが、
最初は、空きメモリが沢山あって、キャッシュ済みのメモリが少ない。

そして、徐々に、空きメモリとキャッシュ済みのメモリの数値が入れ替わっている。
これはSuperFetchが先読みをしている状態を示す。

そしてそれが安定した後は、時間がたったことを理由に
SuperFetchのキャッシュが減ることは無い

「キャッシュ済み」のメモリが減るときは、アプリの起動などにより
新たにメモリを使用する場合。

そしてさっきも説明したことだが、「キャッシュ済み」のメモリは
スワップアウトでHDDに書き出されることは無い。速度低下の原因にはならない。

だから、「キャッシュ済み」は使用メモリではなく、使用していないメモリと
同等に考えられる。

そのためここの右下の「物理メモリ」を見ての通り、物理メモリは46%しか
使用していないものとして扱われている

キャッシュとは違う機能であくまで起動時に読み込んでるのかな?
SuperFetch → 先読み。HDDのファイルをメモリに読み込んでおく。
キャッシュ → 一度使われたデータを再利用するためにメモリ上に残しておく。
windowsの起動が遅くなるというが、自分は起動時は大体放置なので、あまり気にならない

またxpなどでは嫌われているであろう、HDDがカリカリと音を立てるのは、windows起動時に
SuperFetchしてるのも関係あるけど、それはアクセスが遅くなるのではないというのが重要かも。
寿命が短くなるとかいうのはハードにはさっぱりなので、よく分からないがHDDの寿命自体を左右するほどのものでは
ないと。

読んででちょっと知らない用語が多発したので、疲れた。

SuperFetchという機能自体はまだ向上の余地ある機能だが、欠点というほどのものではなく、
むしろONにしていた(デフォルトはON)方がいい機能であると感じた。
使い手によっては意味を持たないかも知れないが。

CPU使用率やガリガリ音が気になる場合は自動デフラグやウイルス対策ソフトあたりが
影響している場合もあつとか。(すべてをSuperFetchに押し付けちゃ駄目)