Superfetch/Prefetchの有効・無効を設定するレジストリとツール
目次
SSDを最適化するためのSuperfetch/Prefetchの有効・無効を設定するレジストリとツールをメモ。
Windows7は両方無効にして、Windows10は有効のままでいいとかいろいろ議論があって結局どっちがいいのかベンチマークしていないのでよくわかりませんが、とりあえず設定方法だけ控えておきます。Superfethを無効にすると連動してReadyBoostも無効になるようです。
レジストリで無効に変更する
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters
無効にする場合、「EnablePrefetcher」と「EnableSuperfetch」の項目の値を「0」に変更します。
値の意味
- 0=無効
- 1=アプリケーションプリフェッチ有効
- 2=ブート(システム)プリフェッチ有効
- 3=両方有効(デフォルト)
レジストリを変更するコマンド
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters" /v EnablePrefetcher /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters" /v EnableSuperfetch /t REG_DWORD /d 0 /f
Superfetchはサービスも無効に変更する
Superfetchを無効にする場合、レジストリだけではなくサービスも無効にしておきます。
バッチファイルを使って無効にする
以下のバッチファイルでサービスとレジストリを無効化できます。
@echo off
echo. echo Prefetch/Superfetchを無効にします。 echo.
echo サービス「Superfetch(SysMain)」を停止しています。 net stop "SysMain"
echo サービス「Superfetch(SysMain)」のスタートを無効にしています。 sc config "SysMain" start= disabled rem ※disabledの前の半角スペースは必要。スペースを入れておかないとエラーになる。
echo Prefetch/Superfetchを無効にするレジストリを登録しています。
set REGROOT="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters"
reg add %REGROOT% /v EnablePrefetcher /t REG_DWORD /d 0 /f reg add %REGROOT% /v EnableSuperfetch /t REG_DWORD /d 0 /f
echo. echo 完了しました。 echo.
pause
exit
ツールを使う
電机本舗の「SSD最適化」というフリーソフトを使えば簡単にSSDを最適化するための設定が簡単に行えます。ちなみにインストールが不要です。
以下の画面は「SSD最適化」を起動して[メインメニュー]-[SSDの最適化設定]-[手動設定]で開いた画面です。