送受信中の状態をウィンドウ表示の更新にNo.09768
三月 さん 05/09/24 00:58
 
メーラーdeネットニュースをつかって掲示板の読み込み等をすると、
一度に万件単位で受信をすることもあります。
そんなときの「送受信中の状態をウィンドウ表示」なのですが、
受信開始後にフォーカスをはずすと(他のアプリケーションに移動等)
ウインドウ表示が再描画されなくなってしまいます。
そうなるとハングアップしたのかと錯覚しそうに。
時間がたてばちゃんと制御が返ってくるのでハングアップでは無いのですが。

千件に一回ぐらい更新できないものでしょうか?


ちなみに、1万件以上ある掲示板はOaacleのところです。
(そんなにあるとメーラーdeネットニュースも
 ハングアップしたのかと思える状態になったりします)

WinXPproSP2
秀丸メール4.55β2

[ ]
RE:09768 送受信中の状態をウィンドウ表示No.09779
秀まるお さん 05/09/26 10:15
 
 送受信状態のウィンドウは普通のウィンドウなので、普通は普通に描画される
と思います。描画されなくなったってことは、たぶん送受信の処理があまりにも
重かったらからかなぁと思います。

 そういう場合でも、UpdateWindowって関数を呼べば強制的に再描画させること
はできるので、んではそういう風に、定期的に画面を再描画させるようにしてみ
ます。

[ ]
RE:09779 送受信中の状態をウィンドウ表示No.09828
三月 さん 05/09/28 21:39
 
> 送受信状態のウィンドウは普通のウィンドウなので、普通は普通に描画される
>と思います。描画されなくなったってことは、たぶん送受信の処理があまりにも
>重かったらからかなぁと思います。
>
> そういう場合でも、UpdateWindowって関数を呼べば強制的に再描画させること
>はできるので、んではそういう風に、定期的に画面を再描画させるようにしてみ
>ます。

試して見たのですが、やはり途中で(応答なし)表示になりました。
下記の104件の当たりで再描画されなくなり、終わった時にやっと
再描画されました。

dump.txtからpickup。
====== 2005/09/28 19:18:22 mode=受信 account=OTN
19:18:23.312 (3966) メーラーdeネットニュースの送受信待ち
19:29:45.359 (3966) サーバーを検索中 - localhost
:
19:29:47.937 (3966) メール一覧を取得中(1%)
:
19:29:52.937 (3966) メール一覧を取得中(100%)
:
19:30:05.000 (3966) 104 / 37192 済み (130K / 48387Kバイト)
:
21:18:22.671 (3966) 37192 / 37192 済み (48484K / 48484Kバイト)
:
21:19:02.250 (6944) メール総数=37134 / 最近の分=37134 / 未読=37133 / マーク=0

[ ]
RE:09828 送受信中の状態をウィンドウ表示No.09838
秀まるお さん 05/09/29 10:24
 
 一応、1秒以上ループした場合はUpdateWindow()関数を呼ぶようにして、送受
信状態ウィンドウとステータスバーだけ強制描画してるんですが…。

 僕の予想した状態とはまた別なのか、単に僕のやり方のミスなのか、やはりち
ゃんとしたテスト環境を作らないとダメってことですね。ということで、その
Oracleの掲示板でテストしようかと思うんですけど、どこでしょ?

 URLか何か教えてほしいです。

[ ]
RE:09838 送受信中の状態をウィンドウ表示No.09845
ポン太 さん 05/09/29 15:57
 
秀まるお さん、こんにちは。ポン太 です。

> URLか何か教えてほしいです。

OTNの掲示板のURLは http://otn.oracle.co.jp/forum/index.html です。
必要なソフトは、
http://www.geocities.jp/yutaro_0814/
から、メーラーdeネットニュース+INCMプラグインプラグイン
http://www.tmjp.net/~tomomori/
から、cm_OtnReaderです。

OTNはユーザー登録(無料)が必要ですが、発言しなければ登録なしでもいける
かも。


ちなみに私のサイトのURLが変わりました。
http://www.geocities.jp/yutaro_0814/
まるお さんところの
http://hide.maruo.co.jp/software/hidemarumail/doc13.html
のリンクを直していただけると嬉しいです。m(_ _)m


2005/09/29(木) 15:51 ポン太

[ ]
RE:09845 送受信中の状態をウィンドウ表示No.09846
秀まるお さん 05/09/29 17:00
 
 ではぼちぼちテストさせていただきます。

 ホームページURLの変更の件も了解しました。さっそく修正します。

[ ]
RE:09845 送受信中の状態をウィンドウ表示No.09848
三月 さん 05/09/29 20:23
 
>http://www.geocities.jp/yutaro_0814/
>から、メーラーdeネットニュース+INCMプラグインプラグイン
>http://www.tmjp.net/~tomomori/
>から、cm_OtnReaderです。
>
>OTNはユーザー登録(無料)が必要ですが、発言しなければ登録なしでもいける
>かも。
>
たぶん登録しないと駄目です。
cm_OtnReaderの巡回設定で認証にユーザ名とパスワードを入れないと
記事の取得が出来ませんでした。



[ ]
RE:09848 送受信中の状態をウィンドウ表示No.09857
秀まるお さん 05/09/30 14:07
 
 テストしてみたんですけど、UIDL文字列を受信した後にしばらく固まったよう
になるようです。それ以外の、受信している最中はちゃんと画面を描画します。

 UIDL文字列を受信した直後には、いわゆる「ダウンロード済みのメールかどう
か」を判断する処理が働くんですが、さすがに1万件以上もメールがあると遅い
ようです。僕のK6-500MHzマシンで、10秒〜20秒くらい固まってしまいます。

 そういうことで、とりあえずそのUIDL文字列の比較の処理を見直そうかと思う
んですが、それでいいですよね?

 メーラーdeネットニュースの生成してるUIDL文字列が大変長くて、しかも一番
最後の数字以外はほとんど同じであるがために、文字列の比較が遅くなってしま
うような気がしますけど。まぁその辺は、その気になれば高速化可能だとは思い
ます。

[ ]
RE:09857 送受信中の状態をウィンドウ表示No.09858
秀まるお さん 05/09/30 17:49
 
 いろいろテストしたらもっと極端に重いケースが見つかって、それなりに高速
化しました。しかし、それでもなお、20秒くらい固まってしまうようです。

 UIDL.binのファイルサイズが1メガバイトくらいあって、その中に入っている
文字列が非常に似通った物ばかりで、さらに、メールサーバーから届くUIDL
リストも同じくらいのサイズがあってってことで、それらのマッチングに大変時
間がかかってしまうようでして…。それなりに遅くても仕方がない気もするんで
すけど。

 もっと高速化できないか考えてみます。

[ ]
RE:09858 送受信中の状態をウィンドウ表示No.09859
ポン太 さん 05/09/30 18:13
 
秀まるお さん、こんにちは。ポン太 です。
個人的な意見ですが、

>間がかかってしまうようでして…。それなりに遅くても仕方がない気もするんで
>すけど。

私は仕方ないと思って使っています。一度に数万件というのは日常的に起きるわ
けではなく、最初だけのことですから(人によっては最初の段階で古いログを取
らないかも)。私がOTNを最初に設定したときは、夜処理を流したままにしまし
た。
メーラーdeネットニュースでemlだけ作ってインポートという方法が一番良いの
かも。

> もっと高速化できないか考えてみます。

滅多に使われない機能のために、あまりエネルギーを使われない方が良いのでは
と感じます(三月 さんや他の方次第ですが)。
それをやることで少ない件数の時もきびきび動くようになるというのなら、それ
はそれでやる価値はあるでしょうが。


2005/09/30(金) 18:05 ポン太

[ ]
RE:09859 送受信中の状態をウィンドウ表示No.09871
秀まるお さん 05/10/03 16:15
 
 いろいろいじって効率化させまして、だいぶ高速化できました。

 UIDL.binが5000行、サーバー上のメール数が5000通程度の場合で、だいたい2
秒程度になったと思います。この辺でやめて、あとはしばらくテストします。

[ ]
RE:09871 送受信中の状態をウィンドウ表示No.09872
三月 さん 05/10/05 19:10
 
> いろいろいじって効率化させまして、だいぶ高速化できました。
>
> UIDL.binが5000行、サーバー上のメール数が5000通程度の場合で、だいたい2
>秒程度になったと思います。この辺でやめて、あとはしばらくテストします。

やはり、秀丸メールのV4.55β5でも、受信中に他のアプリにフォーカスを
移すと画面が更新されなくなります。
画面の切り替えでキャプションに「(応答なし)」と表示されたりもします。

固まった画面では
S RETR 39
R +OK 1162 octets
R ...(1165バイト)
S DELE 39
R +OK message 39 marked deleted
のような処理中ですが、UIDLでかかっているのでしょうか?

画面切り替えせず、秀丸メールがアクティブのままなら最後まで
画面更新できそうな気もしますが、確認はしてません。

時間がたてば復帰するのでそのまま正式版になってもかまいませんが。

[ ]
RE:09872 送受信中の状態をウィンドウ表示No.09873
秀まるお さん 05/10/06 09:14
 
 UIDLを受信してからしばらく固まってしまう症状はこちらで確認できたんです
が、RETR/DELEコマンドをやりとりしてる最中に「応答なし」になるような症状
はこちらでは確認できませんでした。

 というか、こちらでは単に、マウスで秀丸メール本体をクリックしたり、送受
信の状態表示ウィンドウをマウスで移動したりしてテストしたんですけど、そう
いうテスト方法がちょっと悪かったような気がします。単純に、Alt+Tabで秀丸
メールにウィンドウ切り替えしたらダメって話ですかね?

 マウスクリックにはたしかに反応するようですが。

 UIDLを受信した後の固まり現象を解決するのに必死でして、それ以外のテスト
はあまりしてませんでした。そもそもWindows2000でしかテストしてないし。

 WindowsXPを使ってもうちょっとテストしてみます。

[ ]
RE:09873 送受信中の状態をウィンドウ表示No.09874
秀まるお さん 05/10/06 11:03
 
 「全般的な設定・送受信・詳細」の「データの受信をマルチスレッドで行う」
がONだと、効率がよくなって、結果として応答がにぶくなるようですが、そうな
ってますかね?。さらには、「アカウントごとの設定・メールサーバー」での
「メール受信の高速化」もONだともっと固まりそうです。

 どっちみち現象は把握できたので、なんとか(マルチスレッドの場合に限っ
て)対処方法を考えてみます。

[ ]
RE:09874 送受信中の状態をウィンドウ表示No.09875
三月 さん 05/10/06 12:07
 
> 「全般的な設定・送受信・詳細」の「データの受信をマルチスレッドで行う」
>がONだと、効率がよくなって、結果として応答がにぶくなるようですが、そうな
>ってますかね?。さらには、「アカウントごとの設定・メールサーバー」での
>「メール受信の高速化」もONだともっと固まりそうです。
>
どちらもOFFになってます。

[ ]
RE:09873 送受信中の状態をウィンドウ表示No.09876
三月 さん 05/10/06 12:15
 
> UIDLを受信してからしばらく固まってしまう症状はこちらで確認できたんです
>が、RETR/DELEコマンドをやりとりしてる最中に「応答なし」になるような症状
>はこちらでは確認できませんでした。
>
> というか、こちらでは単に、マウスで秀丸メール本体をクリックしたり、送受
>信の状態表示ウィンドウをマウスで移動したりしてテストしたんですけど、そう
>いうテスト方法がちょっと悪かったような気がします。単純に、Alt+Tabで秀丸
>メールにウィンドウ切り替えしたらダメって話ですかね?
>
RETR/DELEしてる最中に、IEとかに切り替えて、秀丸メールに戻すとかでおきてます。
(時間がかかるのでその最中に他の事をやって何処まで進んだか見ようと
 秀丸メールに戻すと画面が更新されないだの、さらには応答なしになるだのと)

> WindowsXPを使ってもうちょっとテストしてみます。
win2000でメールやる環境が無いですが、2台のWinXPではどちらでもおきてます。

[ ]
RE:09876 送受信中の状態をウィンドウ表示No.09877
秀まるお さん 05/10/06 12:33
 
 いろいろテストして、マルチスレッド受信のオプションOFFでもそれなりに固
まったような状況が確認できました。これはこれで、マルチスレッドオプション
ONの時とは別の原因によるものですけど。

 どっちにしてもそれなりの対処を入れたので、それで試してみてほしいです。
ってことでまたβ版アップロードします。

 (できれば今日中に)

[ ]
RE:09877 送受信中の状態をウィンドウ表示No.09878
三月 さん 05/10/06 21:46
 
> いろいろテストして、マルチスレッド受信のオプションOFFでもそれなりに固
>まったような状況が確認できました。これはこれで、マルチスレッドオプション
>ONの時とは別の原因によるものですけど。
>
> どっちにしてもそれなりの対処を入れたので、それで試してみてほしいです。
>ってことでまたβ版アップロードします。
>
> (できれば今日中に)

β6で試したところいい感じです。
6300件ぐらいのJavaの部屋で試して見ましたが、ほぼ問題なく描画更新されます。

ほぼというのは、しつこくIEと秀丸メールを切り替えたり、IEの
ウインドウを移動して秀丸メールを隠して再度秀丸メールに切り替えたり、
秀丸メール本体と受信中のウインドウを動かしたりとかなり負荷をかけた時に
秀丸メール本体と受信中のウインドウが共に真っ白になったこともあので。


[ ]
RE:09878 送受信中の状態をウィンドウ表示No.09879
秀まるお さん 05/10/07 09:54
 
> ほぼというのは、しつこくIEと秀丸メールを切り替えたり、IEの
> ウインドウを移動して秀丸メールを隠して再度秀丸メールに切り替えたり、
> 秀丸メール本体と受信中のウインドウを動かしたりとかなり負荷をかけた時に
> 秀丸メール本体と受信中のウインドウが共に真っ白になったこともあので。

 数秒程度待って正常に戻るならそれでよしとさせて欲しい所です。

 固まったままになるならまずいですけど。っといいつつも、まぁレアケースだ
から放置するって手もありますが。

[ ]
RE:09879 送受信中の状態をウィンドウ表示No.09880
三月 さん 05/10/07 12:15
 
>> ほぼというのは、しつこくIEと秀丸メールを切り替えたり、IEの
>> ウインドウを移動して秀丸メールを隠して再度秀丸メールに切り替えたり、
>> 秀丸メール本体と受信中のウインドウを動かしたりとかなり負荷をかけた時に
>> 秀丸メール本体と受信中のウインドウが共に真っ白になったこともあので。
>
> 数秒程度待って正常に戻るならそれでよしとさせて欲しい所です。
>
> 固まったままになるならまずいですけど。っといいつつも、まぁレアケースだ
>から放置するって手もありますが。

固まったままと言うよりは画面更新されないだけで、
受信が完了すると復帰しますので放置でも良いです。

受信完了しないと復帰しないみたいですが固まってるわけで無いので
気長に完了するのを待てば事足ります。

[ ]
RE:09880 送受信中の状態をウィンドウ表示No.09881
秀まるお さん 05/10/07 12:48
 
 GetQueueStatus( QS_INPUT ) って処理が入っているので、たぶんマウスクリ
ックとかキーボード操作とかすれば復旧するんじゃないかと思いますが…。

 とりあえず、QS_PAINTも見るように直して、それで正式版にしてみます。

[ ]