さよならSysMain

Windows10 バージョン1809以降、SysMainと名付けられた機能がデフォルトで有効化されている。名前を素直に読むとシステムのメイン機能であり、あって当たり前、無くなったら大問題、のように思える。しかしこれはWindowsが提供するサービスの一つであり、停止してもWindowsそのものが使用不可能に陥ることはない。調べたところSysMainとは、以前はSuperFetch、さらにその前はPreFetchと名付けられていた機能の発展形のようなのである。PreFetchは、Pre――あらかじめ、Fetch――取ってくる、すなわち先読み。SuperFetchは、Superなので超先読み。それが何故、HyperFetchなどではなくSysMainと改名されたのか。それほど興味はないが。

興味があるのはSysMainの挙動である。どうやらPreFetchの頃から思想は一貫しているようで、ユーザーの体感速度を上げるために、これからユーザーが使いそうなファイルをあらかじめ準備しておく、というものらしい。調べたところによると、SysMainはメインメモリに空きがあると見るや、そこにストレージからファイルを読み込んで格納しておく。ユーザーがファイルを使う時、SysMainが用意しておいたファイルを使うなら『当たり』で、読み込み無しですぐ使える。もし『外れ』の場合でも、すぐ使用しないと分かったファイルはメインメモリから破棄するので、SysMainが原因でメインメモリが圧迫されることはない。と、良いことづくめの機能のように見える。

しかし実際の挙動を見ると、どうにも怪しいのである。メインストレージがHDDのパソコンでWindowsを立ち上げると、操作可能になってからもしばらくディスクの使用率が100%のままとなる。この時、すぐに例えばインターネットブラウザを立ち上げようとすると、かなり待たされることになる。予想でしかないが、これはユーザー操作があった場合でもSysMainはその動作を停止せず、SysMainが読み込もうとしているファイルとユーザーが読み込もうとしているファイルの2種を同時に読み込もうとして、極端に遅くなっているように思える。古参パソコンユーザーならご存じの通り、HDDはランダムアクセスに弱い。

それでいて、Microsoftはこの機能をSSDと比較して読み込みが遅いHDD向け、と位置付けているらしいのだ。本気でそう思っているなら、起動直後からSysMainをバリバリ働かせることを止めていただきたい。SysMainはサービスとして実装されているので、ならばと思い遅延開始にしようとしたら拒否された。起動直後の時間をしばらくSysMain様へ明け渡すか、さもなくばSysMainの機能を停止するしかないようだ。仕方がないので泣く泣くSysMainを停止した。おかげでSysMainサービスに依存するReadyBoostも使えなくなってしまうが、背に腹は代えられない。

こうして、先述のHDD機は起動直後に何かを行っても極端に遅い動作となることは無くなった。SysMainの挙動が、例えば1分間ユーザーが何もしていなかったら開始し、ユーザーが何かをし始めたらすぐに停止する、とかであればその恩恵だけを受けることもできるだろうが、今の実装では有難迷惑お節介おばちゃんである。甥っ子の冷たい視線に気づいてほしいと、切に願う。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA