Windows SuperFetch

Windows SuperFetch（ウィンドウズ スーパーフェッチ）とはWindows VistaとWindows 7、Windows 8/8.1、Windows 10に搭載されている、パフォーマンスの向上に関するディスクキャッシュ・メインメモリ管理機能である。Linux 用の preload に相当する。

後日、「SysMain」に改称した。

概要 
メインメモリの空き領域をパフォーマンスの向上に役立てる機能である。Windows XPのPrefetcherを発展させたもの。

次の挙動やアルゴリズムの組み合わせにより機能する。

ユーザーの操作パターンと、アプリケーション（オフィスアプリケーション等）やバックグラウンドプロセス（ウイルス検索など）との挙動を記録・分析し、予測により効率的なメモリ管理を行う。
例として、ユーザーが操作していない時間帯に、ウイルス検索がバックグラウンドで実施され、アプリケーションが使用するメモリがスワップアウトされたとする。SuperFetchはこれらの挙動を監視して、ウイルス検索が終了した後に、スワップアウトされたアプリケーションの使用メモリを再び、自動的に（予測的に）スワップインさせる。
スワップアウトのアルゴリズムの改善
Windows XPでは、おおよそLRUアルゴリズムでスワップアウトされていたが、SuperFetchでは利用頻度による重み付けを行い、頻度の高いプロセスのメモリはスワップアウトされにくくなっている。
OSとアプリケーションで使用されていない空きメモリをキャッシュに割り当てて、ユーザーのPCの利用実態に合わせてキャッシュするデータ（主にOSやアプリケーションの実行ファイルやDLLなど）を自動で選別し、あらかじめプリフェッチの計画、プリフェッチ実行をする。
他のOSやアプリケーションがメモリを使用する場合は、プリフェッチしたキャッシュはそのうち開放するので、SuperFetchによるメモリ使用量が多くても大きな問題と見なさない。標準設定となっているが、使用しないことも可能である（Windowsサービス"SuperFetch"を停止すればよい）。

利点と欠点 
利点
アプリケーションの起動速度の向上、全体的なレスポンスの向上
空きメモリの有効活用
欠点
メモリキャッシュの容量が増加する分、キャッシュの計算にCPUの時間を取られるのでCPUの稼働率が上がる（消費電力の上昇）。
空きメモリ容量が十分でない場合、効果が出ない場合がある。
OSの起動直後は、SuperFetchの先読み動作により、かえってアプリケーションの起動に時間が掛かる場合がある。

脚注

関連項目 
Windows ReadyBoost
Microsoft Windows Vista
Microsoft Windows 7
Microsoft Windows 8/8.1
Microsoft Windows 10

外部リンク 

Microsoft Windows