Windows SuperFetch

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

なお、Windows 10 October 2018 Update(Version 1809)以降のWindows 10、およびWindows 11の場合、名称がWindows SysMain(ウィンドウズ シスメイン)となっている(機能的には全く同じ)[1]

概要

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

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

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

利点と欠点

利点

  • アプリケーションの起動速度の向上、全体的なレスポンスの向上
  • 空きメモリの有効活用

欠点

  • メモリキャッシュの容量が増加する分、キャッシュの計算にCPUの時間を取られるのでCPUの稼働率が上がる(消費電力の上昇)。
  • 空きメモリ容量が十分でない場合、効果が出ない場合がある。
  • OSの起動直後は、SuperFetchの先読み動作により、かえってアプリケーションの起動に時間が掛かる場合がある。

脚注

[脚注の使い方]
  1. ^ https://ikasenmo-answer.com/windows10-superfetch/

関連項目

外部リンク

  • Mark Russinovich (2007年3月). “Windowsの管理: Windows Vista カーネルの内部 : 第 2 部”. TechNet Magazine. Microsoft. 2010年4月3日閲覧。
  • 表示
  • 編集