るなおーびっと!

新PCの起動直後が重いのでスーパーフェッチを変更してみた

2018/04/17 14:06 投稿

  • タグ:
  • Windows
  • PCトラブル

Windows 10 には XP 時代からあるアプリケーションの高速起動のためにあらかじめメモリに読み込んでおく「プリフェッチ(PreFetch)」機能と Vista から搭載された拡張版である「スーパーフェッチ(SuperFetch)」が備わっています。


リソース モニターの場合、濃い青色(スタンバイ)の部分がプリフェッチやスーパーフェッチによってあらかじめメモリに読み込まれたアプリケーションの総量というわけです。(キャッシュ済みの量が「変更済み+スタンバイ」なのでオレンジの部分もそうなのかな?)
上の画像の例だとスタンバイが 6837MB も占めていますが、この領域は空きとして使用可能でもあるので、現在起動しているアプリケーションが多くのメモリを使用しようとする場合、キャッシュされていたものは破棄されてメモリを確保するようになっています。

さて、最近私は新しく PC を組み上げたのだが、持ち合わせがなくてすでに手にしていた 2.5インチ HDD を流用して運用しています。
しかし、この 2.5インチ HDD の速度が遅く、特に起動直後が異常に重たいことに気が付きました。
そこで原因を調べてみた結果、Superfetch サービスがディスクにアクセスしていることが分かりました。それもかなり強い負荷で。
キャッシュが終われば 2.5インチ HDD を使用しているということが気になることは無くなるわけなので、ハイブリッドスリープを活用すればいいのだが、どうしても再起動が必要な場面に出くわすとまた使用可能になるまで時間がかかるのでこれをどうにかしたいのだ。

ここからが本題で、スーパーフェッチはレジストリの値を変更することで「アプリケーションのみをキャッシュする」、「ブートファイルのみをキャッシュする」、「すべてをキャッシュする」、「キャッシュを無効にする」ように変更できることを思い出したのでその方法を調べてみました。
(情報サイトによってはブートだったりシステムだったりするのでどっちが正しいんでしょうね?)

レジストリキー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
名前: EnableSuperfetch
値: 0(無効)、1(アプリのみ)、2(ブートのみ)、3(両方)

ちなみに PrefetchParameters キーの中にはプリフェッチのふるまいを変更する EnablePrefetcher もあり、設定できる値は上記と同じです。

また、プリフェッチのほうも変更した場合は、プリフェッチのために作られたファイルを消しておきましょう。

コマンドプロンプト(PowerShell)を管理者で起動し以下を実行
del /q %windir%\Prefetch\*.*
(サブディレクトリを対象にするオプションは不要、Prefetch内にあるReadyBootは消さなくてもよい)

今回私はスーパーフェッチを2、プリフェッチを3にして様子を見ることにしました。はやく SSD が欲しい…とくに NVMe のやつ。


コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事