検索して一覧作成のダイアログの表示時間No.01596
ぱと さん 09/01/14 09:46
 
最近、「検索して一覧表示」の操作をすると、やけに時間がかかるなあと感じてい
ます。砂時計が出て、1.5秒ぐらいかかるようです。場合によってはもっと長くかか
ることもあります。

ちょっとテストしてみたら、フォルダが多いアカウント上での操作だと時間がかか
り、フォルダが少ないアカウント上では瞬時に表示されるようです。また「一覧作
成」でなく、普通の検索の場合は待たされることは無いようです。

検索履歴を削除して試したのですが、それほど変わりはありませんでした。

もしかして、「検索して一覧表示」は、「対象フォルダ」「除外フォルダ」などの
関係で、ダイアログ表示の前に、フォルダ構造を読み込んでいるのでしょうか?

----
ぱと

[ ]
RE:01596 検索して一覧作成のダイアログのNo.01597
秀まるお さん 09/01/14 10:58
 
 たぶんですけど、検索結果ダイアログボックスの「内容の表示」チェックボッ
クスの右側にある進捗状況のバーを計算するのに時間がかかってるのだと思いま
す。

 そこの進捗バーの計算をするために、検索対象フォルダのすべてについて、ど
のフォルダに何通のメールがあるのか計算します。なので、一番最初に「検索し
て一覧作成」を実行するタイミングで、対象フォルダの分だけ時間がかかると思
います。

 一回実行してしまえばあとは速いと思いますけど。

 進捗状況を出さない訳にはいかないですけど、しいてどうしてもってことでし
たら、進捗状況のバーの表示をあるていど不正確にすることで、最初のもたつき
をなくすことは出来るかもしません。でも、検索にかかる時間のトータルは変わ
らないと思います。1.5秒程度なら許容範囲内ではないかと思いますけど。

[ ]
RE:01597 検索して一覧作成のダイアログのNo.01598
ぱと さん 09/01/14 11:54
 
秀まるお さん

秀丸メールユーザーのぱとと申します。

えっと、実際の検索を開始する以前の段階で、「検索して一覧作成」の検索条件設
定ダイアログを出す時点で時間がかかっているのですが、この最初のダイアログ表
示の前処理として、「メール通数の計算」を行っているのでしょうか?

実際の検索操作を行ってからなら、待つのは当然のことなので、ここで少しの時間
差があっても何も気にならないのですが、最初のダイアログはできることなら、ぱ
っと表示された方がありがたいです。

----
ぱと

[ ]
RE:01598 検索して一覧作成のダイアログのNo.01599
秀まるお さん 09/01/14 12:02
 
> えっと、実際の検索を開始する以前の段階で、「検索して一覧作成」の検索条件設
> 定ダイアログを出す時点で時間がかかっているのですが

 それはちょっと勘違いをしていました。失礼しました。

>、この最初のダイアログ表
> 示の前処理として、「メール通数の計算」を行っているのでしょうか?

 その段階ではしてないです。

 僕の所では検索条件のダイアログボックスはどんな時も一瞬で出てきますけど
…。ソースコードの見直しをしてみます。

 それともうちょっとヒントをいただけると助かるので教えてほしいんですが…。
一番最初の検索の時だけじゃなくて、2回目以降も同じくらい1.5秒程度かか
るのですかね?。あと、フォルダ数の多いアカウントだと遅いとのことですが、
実際にフォルダ数は何個くらいというか、おおざっぱに何十個/何百個/何千個
の、どの程度のレベルかも教えてほしいです。

[ ]
RE:01599 検索して一覧作成のダイアログのNo.01600
ぱと さん 09/01/14 12:33
 
秀まるお さん

秀丸メールユーザーのぱとと申します。

> それともうちょっとヒントをいただけると助かるので教えてほしいんですが…。
>一番最初の検索の時だけじゃなくて、2回目以降も同じくらい1.5秒程度かか
>るのですかね?。

今やったら 3秒前後ぐらいかかってました。OS の時計を表示して目視ではかっただ
けなのでいいかげんですけど。どういうタイミングかわかりませんが、もっとかか
る時もあります。逆にかからない時でも砂時計は出るので、2秒弱ぐらいはかかって
ると思います。

>あと、フォルダ数の多いアカウントだと遅いとのことですが、
>実際にフォルダ数は何個くらいというか、おおざっぱに何十個/何百個/何千個
>の、どの程度のレベルかも教えてほしいです。

フォルダの数は346
また、このアカウントのプロパティで調べたのが下記の情報です。
メール通数 415,802通 メール一覧のメモリ使用量 58.2M バイト
メール用ファイルの全ファイルサイズ 3290.6M

時間がかからないアカウントでは、以下の通り

フォルダの数は120
メール通数 45,732通 メール一覧のメモリ使用量 7.6M バイト
メール用ファイルの全ファイルサイズ 538.3M

それから、検索ダイアログの表示に時間がかかるアカウントは、アカウントのプロ
パティを表示するにもやはり時間がかかります。(こちらは二回目は瞬時ですが。)

一応、他の条件としては、メールフォルダが、サーバー上に置いてあるってことが
あります。

----
ぱと

[ ]
RE:01600 検索して一覧作成のダイアログのNo.01601
秀まるお さん 09/01/14 13:21
 
 ソースコードのトレースをしてみたら、「検索して一覧作成」の場合は「検索
対象フォルダ」枠中の「フォルダ」ラジオボタン右側のコンボボックスを初期化
するために、アカウント直下のフォルダおよびsubdir.binファイルを走査するよ
うな処理が走ってしまうようでした。

 一応、普通はキャッシュが効くので2回目(または一回展開したアカウント)
なら高速なはずなんですけど、ネットワークドライブだとキャッシュされなくて
遅いってことなのかもしれません。ということで、とりあえずこういうケースに
ついて、フォルダ枠からツリー構造をコピーすることでフォルダ一覧を作成する
ような処理に直してみます。

[ ]
RE:01601 検索して一覧作成のダイアログのNo.01608
ぱと さん 09/01/16 09:11
 
秀まるお さん

秀丸メールユーザーのぱとと申します。

5.16beta1 で試してみたところ、バージョンアップ直後(かつWindows 起動直後)だ
けはけっこう時間がかかりましたが、その後は、秀丸メールをいったん常駐から解
除して再起動した後でも、ほぼ瞬時に「検索して一覧作成」のダイアログが表示さ
れるようになりました。

これで満足です。どうもありがとうございました。

----
ぱと

[ ]