ソートが遅いNo.06178
hp さん 16/10/04 17:14
 
種類でのソートに30秒程度かかります。

条件
種類列:種類名でソート
第一要素:種類
第二要素:名前・更新日時・サイズいずれでも
フォルダサイズ表示:なし
ローカルディスク
Windows 7 64bit
秀丸ファイラー64bit 1.22

フォルダ内容
VC++2015プロジェクトのReleaseフォルダにコンパイルされたexeやdllなど、
100MB程度のaviファイルが400個、
テキストファイルが数個。

第二要素が種類で第一要素が名前や更新日時のときはほぼ一瞬でソートできます。

種類のカラムをクリックするときと、種類を第一要素として記憶したフォルダを開く
ときの両方で、このようになります。

XPからネットワーク越しに同じフォルダを見ても、このようなことは起こりません。

2回目からは5秒程度で終わるので、何かディスクキャッシュしているのでしょうか。

ということは、ソートするためにファイルを開いているのでしょうか?

とはいえ、種類が第二要素のときは起こらないので、何が起こっているのかはよく分
かりません。

解析お願いします。

[ ]
RE:06178 ソートが遅いNo.06179
秀丸担当 さん 16/10/05 10:56
 

確認してみたところ、確かに遅いことがあるようです。
「種類」または「項目の種類」は、OSによって挙動がばらばらで統一するために
通常は種類名でソートするようにしています。
[ツール]→[オプション]→[デザイン/操作]→[ファイル一覧2]の「種類列」が
「種類名でソート」になっていると、種類名の文字列を取得し、それでソートし
ます。
ここを「Windows標準」にすると回避できるようです。
「Windows標準」でWindows7の場合、「種類」は種類名になり、「項目の種類」
は拡張子でソートされるようになります。

「種類名でソート」の場合は、「種類」「項目の種類」のどちらも種類名を問い
合わせているだけですが、なぜか「種類」はexeファイルやdllファイルを読みに
行っているようです。
なぜ違いがあるのかはWindowsの処理によるものでわからないです。
こちらで確認してみた限りでは400個くらいで数秒という程度でしたが、exeや
dllなので、ウィルス対策ソフトの具合によっては遅くなることも考えられると
思います。

今後のバージョンではオプションの「種類名でソート」の場合は名前を問い合わ
せず、内部的にすり替えてWindows標準の処理を呼ぶようにしてみます。

[ ]
RE:06179 ソートが遅いNo.06180
hp さん 16/10/06 09:16
 
>ここを「Windows標準」にすると回避できるようです。
とりあえず「Windows標準」で使ってみます。

種類名でソートは拡張子ということですが、ファイル名から拡張子の文字列を取り出
すのとは違うのでしょうか?

種類は「Adobe Photoshop イメージ」など複数の拡張子が区別のないものに統一され
ている場合もあってわかりにくいので、拡張子に期待です。


[ ]
RE:06180 ソートが遅いNo.06181
秀丸担当 さん 16/10/06 11:14
 

種類名でソートというのは「Adobe Photoshop イメージ」というような文字列そ
のものでソートすることです。
拡張子でソートというのは「.psd」というよなファイル名の拡張子部分の文字列
でソートすることです。

設定が「種類名でソート」の場合は以下のようになっています。
「種類」列 → 種類名でソート
「項目の種類」列 → 種類名でソート

設定が「Windows標準」の場合は以下のようになっているようです。
「種類」列 → 種類名でソート
「項目の種類」列 → 拡張子でソート
(Windows7の場合。Windowsによって違います)


現在設定には「拡張子でソート」という設定は無いですが、そういう設定があっ
てもいいと思います。今後のバージョンで検討します。

現状で拡張子でソートするには、設定を「Windows標準」にして「項目の種類」
列でソートするとできます。
[表示(V)]→[カスタマイズ(C)...]で列の内容をカスタマイズできます。

ちなみに「利用できるすべてのプロパティを表示」の中に秀丸ファイラー専用の
「拡張子」もあって、これで拡張子のソートをする方法もあります。

[ ]
RE:06181 ソートが遅いNo.06182
hp さん 16/10/06 16:46
 
「種類」の他に「項目の種類」というのもあったのですね。
混乱しています。

Windows標準にして「項目の種類」で使わせてもらいます。
とりあえず、この設定で遅くなることはないようです。

ありがとうございました。

[ ]