Top 上へ 目次
Ver.7.2って結局のところどういう違いがあるわけ?
予想通りというか、違いが分からん!という問い合わせがチラホラとありましたので、ちょいと解説です。
環境はWindows10、セキュリティソフトはデフォルトのDefenderを使用しています。
表示するディレクトリは、これです。
わりとファイルサイズが大きいexeファイル(600KB〜3MB程度)が、ある程度多く格納されているフォルダーで、Windows10環境では致命的な性能問題を起こしかねないフォルダーです。
何が致命的かって、試しに、このフォルダーをエクスプローラーで開いただけで
この通り、延々とCPU負荷が下がらないんです。
おそらくSSDじゃなかったら、もっと時間がかかってたでしょう。
これ、何が原因かというとエクスプローラーで該当のフォルダーを開くと、そのフォルダーの配下をDefenderが走査します。
タスクマネージャを良く見ていれば、Defenderがバックグラウンドで動作しているため、延々とCPUとHDDとメモリに大きな負荷をかけ続けているのが分かると思います。
高負荷状態を解消するには、上の図のWindows10のコントロールパネルの設定をOFFにしてやることで、負荷が急激に下がるのが確認できます。
エクスプローラーの場合は、バックグラウンドで動いているため、あまり負荷がかかっていないように感じます。
とはいえ、負荷がかかっているのは厳然たる事実なわけで、いかにセキュリティ関連ソフトが性能に悪影響を及ぼしているか理解していただけると思います。
またエクスプローラーが軽快に感じるというのは錯覚であって、そういった問題点を分かりにくくしているだけなのです。
フォルダーを開いた時のDefenderの自動走査のアルゴリズムはダメな子というのは否定しませんが、不要といってるわけではありません。
こういうダメなソフトが標準であるというのが、Windows10のダメなところなんじゃないかと思うわけですよ。
具体的に、どのセキュリティ関連ソフトが良いとか言いませんけど、有償のものはもう少しマシな動作をすることが多いです。
というわけで、Ver.7.2はDefenderやSecurity essentialsへの抜本対策を盛り込んだチューニングを施しているという事になります。
具体的には、As/Rは「時間がかかりすぎると判断したら途中で諦める」という考え方を採用してるので、件のフォルダーを開いても
こんな感じで、1件取得がタイムアウト時間を超えた場合、それ以降の情報取得を諦めるので延々と負荷が残り続けることがありません。
特に、取得を諦めた後でもファイル操作ができる、というのが今回の特徴でもあります。
あとは、安定性の向上ですかね。
Ver.7系から落ちやすくなったという声がチラホラ聞こえますが、そもそもVer.4〜6はアイコン画像の取得をバックグラウンドで行っていなかったというマジですまんかった大バグがあります。
つまり、Ver.4〜6は本気の性能を出してなかったわけで、Ver.7は本気出してますが余裕がなくて落ちてるんじゃないか?という感じがしています。
(Ver.7.1でオプションで切り替えが可能になってます)
で、余裕がなければ、余裕を作れば良いじゃない?という発想で、ゼロベースから設計しなおしたのがVer.7.2というわけです。
具体的には、非同期、つまり今のリストの状況なんぞ知ったこっちゃネェ!と自分勝手に動作しますので、メインのリストの影響を排除して考えることができます。
もちろん、スレッド間の情報の伝達とか、無駄な投機処理が余分に発生するわけですが、バックグラウンドなんで表面化しにくいというわけです。
これって何がうれしいかというと、従来なら1個のタブが固まって全部のタブを巻き込んでいたケースでも、他のタブは動きますぜというシーンが大幅に増えてます。
バージョンごとの動作の違い
バージョン | 機能 | 詳細情報の取得 | アイコン | 縮小画像 | オーバーレイアイコン |
Ver.〜3 | 処理 | 遅延取得 | 同期バックグラウンド | 同期バックグラウンド | 遅延取得 |
タイムアウト | × | × | × | × |
キャンセル | × | ○ | ○ | × |
Ver.4〜6 | 処理 | 遅延取得 | 遅延取得(バグ) | 遅延取得(バグ) | 遅延取得 |
タイムアウト | × | × | × | × |
キャンセル | × | △ | △ | × |
Ver.7 | 処理 | 遅延取得 | 同期バックグラウンド | 同期バックグラウンド | 同期バックグラウンド |
タイムアウト | × | ○ | ○ | ○ |
キャンセル | × | ○ | ○ | ○ |
Ver.7.2 | 処理 | 遅延取得※1 | 非同期バックグラウンド | 非同期バックグラウンド | 非同期バックグラウンド |
タイムアウト | ○ | ○ | ○ | 取得に時間がかかるものは後回しにしてリトライ |
キャンセル | ×※1 | ◎※2 | ◎※2 | ◎※2 |
Defenderウィルススキャン | 走査 | 走査 | なし | 走査 |
※1、詳細情報の取得も非同期バックグラウンド化を検討していますが、まだ可能かどうか結論は出てません。
タイムアウト無しの設定にした状態であっても途中でキャンセルできるメリットがあり、Ver.7.3.0で実現したい願望中です。
※2、非同期のため、レスポンスが大幅に向上してます。
※Defenderの特性がこうなっているというだけで、他のセキュリティ関連ソフトが良いというわけではありません。
例示はしませんが、もっと酷いものが「多数」存在しています。
※Defenerを使用していない、後輩のダメな環境で同様の負荷が観測され、システム全体がクソ環境になっている場合もあります。
単にできの悪いシェル拡張ツールがインストールしてあるだけでも発生しうる現象と言えます。
さて今回の改修は、良い所だらけに見えるかもしれませんがデメリットも当然あります。
バックグラウンド動いているものを終わせる処理、アプリケーションを終了する際に待たされることになるケースが多々あります。
また上でも書いてますが、トータルのCPU時間、ディスクアクセス回数、メモリ使用量は増えてますので、優秀なセキュリティソフトを使ってる人にとっては、極めて残念な仕様変更とも言えます。
そういったデメリットを加味しても、応答速度の向上にメリットがあると判断しました。
・・・OSの初期状態が酷いという話ですしね。