Top 上へ 目次
Ver.7以降の予定
特にやりたいことは無いので、課題項目を眺めつつノンビリと可能性がありそうなモノから善処しようかなと考えてます。
ちょっとやそっとじゃ何ともならなくて、大規模な課題ばっかりなのが頭痛いところです。
直近の大きなテーマで言えば、アイコン画像取得のスレッド管理部分を丸ごと作り直そうかな・・・と、すごく地味な内容を検討しています。
現行の仕組みでは、一覧生成スレッドと、アイコン画像の取得スレッドで、一部のデータを共有しているので同期処理が間に入っています。
親子関係もありますしね。
で、こいつらを完全分離すると、UIとディスクアクセス部がしっかりと分離されて、快適に・・・なるかもしれません。
おそらく「言われてみれば、待ち時間が減ったかもしれない」というレベルで、目立つ変化ではありません。
ちなみに、どういうところで影響が出ているかというと、一番大きいのはウィルススキャン系のソフトとの相性問題です。
例えばWindows10だとDefenderが有効になっており、永続的にOFFにできないようになってます。
ぶっちゃけた話をすると、As/RってDefenderと相性が悪いんですよ。
As/Rがフリーズしたかな?と思ったら、Defenderの自動スキャンを一時的にOFFにすると、大抵の場合復帰してきます。
また他のアイコン画像を取得する系のソフト、私の愛用品だとWinSCPなども同様の現象で悩まされてます。
もちろん、よそ様のファイラーでWindows10だとプチフリーズが多いという話をチラホラ聞きますけど、多分同じ原因でしょう。
エクスプローラーですら相性良いのか?というと微妙なところでして、アイコン画像を取得しに行ってるプロセスの負荷は高く(Windows10のエクスプローラーはサービスにやらせてるっぽい)、裏でゴリゴリ動いていてバッテリー消費とかにも影響してんじゃね?という気がします。
Ver.7.1.xまでのアイコン取得スレッドは、リストに並んでいるものを順次取得に行っているので、1個詰まるとずっと待たされることになるんですね。
というわけで、取得できなければ投機的に、どんどこスレッドを立てて試行しに行く方法を検討しています。
スキャンのキャッシュを持ってるウィルススキャンソフトだと、2回目以降は取得が速くなってくれるので、複数回取得してもさほど待っている実感がありません・・・という錯覚を利用しています。
ただ、弱点もあります。
わりと昔・・・今もあるか、名称は伏せますが評判の良くない廉価版のウィルススキャンソフトの中には、スキャン済みのキャッシュをせず、毎回リアルタイムスキャンをするソフトが動いていると、デメリットだらけです。
(プロセス名をみてエクスプローラーだけ除外しているタイプで、エクスプローラーでダブルクリック実行したらスキャンしないザルな仕組み)
その場合は、アイコンの取得スレッドの設定で「同期処理」を選択してもらうことになります。
あとスレッドをどんどこ作ってるので、消費メモリも上がってますし、瞬間的にGDIリソースもたくさん使用するようになってます・・・が、これは測定しても気づけないレベルかなぁ。
アイコン取得APIが応答をすぐに返さないケースも多々あるので、アプリケーションの終了に時間がかかる場合も多々発生します。
ちょっと心に引っかかる点は、この方式は「まめFile」の0系で使ってた手法のリメイクだったりして、またしも古典手法の焼き直しです。
ホント、今までナニやってたんだかと思います。
もう1個心に引っかかる点は、Windows10は、build 11099以降ならDefenderの動きが劇的に速くなります。
ホント、Windowsの迷走することといったらもう・・・。