[ 新規に投稿する ]

IMAPでのダウンロード時の挙動についてNo.11447
さん 23/06/29 15:10 [ コメントを投稿する ]
   お世話になります。

 先日、IMAPで大量のメール(1万1000件程度)をダウンロードする機会があったんですが、その際に少し困ったことがありました。
 読み上げソフト(NVDA)を利用している関係かもしれないんですが、メールのダウンロード中にキーレスポンスが悪くなってしまうようです。
 多分画面自体はすぐに切り替わっていると思うんですが、読み上げがついてきていないものと思います。
 また、秀丸メールだけにかかわらず、Alt+Tabキーを押したり、ブラウザなどでWeb閲覧している際も遅くなっています。
 読み上げソフトが起動していない状態や他の読み上げソフトでのテストはまだできていません。
 ちなみに、100件程度だとダウンロードがすぐに終わってしまうのでなかなかわかりにくいかもしれません。
 このあたりを解消することは難しいでしょうか。
 すごく曖昧な質問で申し訳ありません。
 環境は、Windows11 22H2 64ビット、秀丸メール 7.20β6です。

 以上、よろしくお願いいたします。
[ ]
RE:11447 IMAPでのダウンロード時の挙動についてNo.11454
秀まるお2 さん 23/06/29 18:19 [ コメントを投稿する ]
   IMAPで大量メールをダウンロードすると固まってしまってPauseキーが効きにくくなるのは僕の所でも同じではあります。理由は、いわゆる「非同期ソケット」のメッセージが連続して発生すると、それがキー入力やマウス入力のメッセージよりも優先されて実行されてるせいなのかなぁと思います。

 解決策として、メッセージループの中でキー入力やマウス入力のメッセージを優先して処理する作戦も可能なんですが、今ちょっとソースコード見直しをしたら、それをやって秀丸メールが固まる事例があって、その処理が廃止された経緯がありました。

 やはり下手に危ないことはしない方が無難だと思うので、とりあえずはやめとこうと思いますが、手元のデバッグ版でその処理を入れて当分様子見してみるといいかもしれません。一回その辺いじってみます。

 あと、最近のWindowsで、Windows Defenderによるチェックが重くなったと思います。受信した添付ファイルに対してのチェックが、そのファイルのサンプルを送信して判定してるようなケースが時々起きてるように思います。これは特にIMAPでなくても起きます。しばらく固まってしまいます。
[ ]
RE:11454 IMAPでのダウンロード時の挙動についてNo.11457
秀まるお2 さん 23/06/30 08:23 [ コメントを投稿する ]
   メッセージループの中でキー入力やマウス入力を優先するようにしてテストしてみたんですが、やはり同じく固まる時間が発生しました。

 さらに調べたら、現状の秀丸メールだとメールの受信コマンドを複数のメール分まとめて送ってるので、それの応答時に固まってしまうようでした。

    UID FETCH 1559,1560,1561,1562,..... (BODY.PEEK[])

 みたいにメールのIDを複数まとめて指定するので、それの応答として巨大なデータが届くと固まるようでした。

 この辺もっと調査して対策を考えてみます。
[ ]
RE:11457 IMAPでのダウンロード時の挙動についてNo.11458
秀まるお2 さん 23/06/30 09:42 [ コメントを投稿する ]
   メールを1通保存する度にキー入力/マウス入力のメッセージがあるかチェックして、あれば一回メッセージループに戻るような処理にしたら、解決したと思います。次のβ版に入れさせていただきます。

 前々から僕も重いなぁとかPauseキーが効きにくいなぁと思ってはいた所でした。原因が分かって改善できて、大変助かりました。
[ ]
RE:11458 IMAPでのダウンロード時の挙動についてNo.11459
さん 23/06/30 10:42 [ コメントを投稿する ]
   お世話になります。

 いろいろありがとうございます。
 とりあえず、次のβ版が出たら試してみます。

> あと、最近のWindowsで、Windows Defenderによるチェックが重くなったと思います。受信した添付ファイルに対してのチェックが、そのファイルのサンプルを送信して判定してるようなケースが時々起きてるように思います。これは特にIMAPでなくても起きます。しばらく固まってしまいます。

 こちらでは、別のウイルス対策ソフトを利用していて、Windows Defenderを全然利用していないので、全然知りませんでした。
 最近のDefenderってそういうことをしてるんですね。

 それでは。
[ ]
RE:11459 IMAPでのダウンロード時の挙動についてNo.11470
さん 23/07/05 12:36 [ コメントを投稿する ]
   お世話になります。

 遅ればせながらβ7を少し試してみました。
 が、こちらではあまり変化ないように思います。
 主観になってしまいますが、むしろ少し重くなったように感じています。
 何度も試したわけではないので、なんともいえませんが。

 それでは。
[ ]
RE:11470 IMAPでのダウンロード時の挙動についてNo.11472
秀まるお2 さん 23/07/05 14:19 [ コメントを投稿する ]
   今回、GetQueueStatusってAPIを使って何か入力があればメッセージループに戻るようにしたんですが、「QS_INPUT」っていう、とにかく何か入力系のメッセージがあればって風にしました。

 次のβ版では

 QS_KEY | QS_MOUSEBUTTON

 にしてみます。こうするとキーボード入力かマウスのボタン入力が無い限り以前と同じ動作になると思います。

 次のβ版が出たら、また様子見お願いします。
[ ]
RE:11470 IMAPでのダウンロード時の挙動についてNo.11473
秀まるお2 さん 23/07/05 14:21 [ コメントを投稿する ]
   すみません。今ソースコード見直したら、安全のためにデバッグ版でしばらく様子見しようとしてて、結果、正式版に新しい処理が入ってませんでした。大変失礼しました。
[ ]
RE:11473 IMAPでのダウンロード時の挙動についてNo.11592
さん 23/08/07 07:31 [ コメントを投稿する ]
   お世話になります。

 今更になってしまって申し訳ないのですが、β13をインストールして、少し試してみました。
 少し調べてみたところ、キー入力に関しては問題ないようですが、やはり読み上げソフトの読み上げが遅延してしまうようです。
 他のスクリーンリーダーでは問題なかったので、多分NVDA側の問題なような気もします。
 ありがとうございました。

 それでは。
[ ]
RE:11592 IMAPでのダウンロード時の挙動についてNo.11600
秀まるお2 さん 23/08/07 15:35 [ コメントを投稿する ]
   キー入力やマウス入力のメッセージは即座にメッセージループを回しますが、他のメッセージは待機させられるので、それのせいかもしれません。GetQueueStatusってAPIで、現状はQS_INPUTを指定してますが、例えばそれをQS_ALLINPUTにすれば改善するかもしれません。

 次のバージョン(正式版予定)で、「全般的な設定・上級者向け・デバッグ」の「デバッグレベル」の値が0以外(例えば1とか)だったらQS_ALLINPUTにするって風にしてみます。次のバージョンをインストールしてその設定にしてもし良くなるならまた連絡ください。
[ ]
RE:11600 IMAPでのダウンロード時の挙動についてNo.11630
さん 23/08/09 16:36 [ コメントを投稿する ]
   お世話になります。

 秀丸メールの7.20正式版をインストールして、デバッグレベルを1にして試してみました。
 少し使った限りでは、よくなったようです。
 多分これで大丈夫そうです。
 とりあえず、もうしばらく使ってみますが、対応ありがとうございました。

 以上、今後ともよろしくお願いいたします。
[ ]
RE:11630 IMAPでのダウンロード時の挙動についてNo.11633
秀まるお2 さん 23/08/09 17:32 [ コメントを投稿する ]
   では次のβ版(V7.21β1)からはデバッグレベルに関係なくQS_ALLINPUTを使うようにしてみます。
[ ]
RE:11633 IMAPでのダウンロード時の挙動についてNo.11670
さん 23/08/18 17:51 [ コメントを投稿する ]
   お世話になります。

 デバッグレベルを1にしてしばらく使ってみていたんですが、1つ気になる挙動を発見しました。
 メール送信の際、「SSL初期化中」で止まってしまうようです。
 Altキーを押したり、Alt+Tabを押してフォーカスを切り替えたりすると、問題なく送信されますが、少し気になっています。
 改善可能でしょうか。

 以上、よろしくお願いいたします。
[ ]
RE:11670 IMAPでのダウンロード時の挙動についてNo.11672
秀まるお2 さん 23/08/18 18:20 [ コメントを投稿する ]
   デバッグレベル=1にした場合ですが、GetQueueStatusで「QS_TIMER」も指定してたのがまずいと重いました。それで、今日アップロードしたVersion 7.21では、デバッグレベルに関係なく、GetQueueStatusでQS_TIMERを指定するのはやめて、

    QS_INPUT | QS_POSTMESSAGE | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE

 を指定するようにして、それで良くなったかなぁという気がします。

 デバッグレベルは0に戻して試してみてほしいです。

 最新のVersion 7.21でも、デバッグレベルを1にすると、ちょっと前の処理がまだ残ってて、QS_TIMERを見てしまう処理が残ってしまってました。デバッグレベル0なら大丈夫だと思うんですが、どうでしょうか。

 SSL初期化中で止まるのか、とりあえず僕の所でVersion 7.21でデバッグレベル0と1両方でテストした限りは起きないようではありました。ただ、音声化ソフトがあると動作が違うかもしれません。GetQueueStatusで何か入力があれば受信を中断してタイマーをセットして、そのタイマーのメッセージが来たら再開する、みたいな処理をしてるんですが、QS_TIMERを指定してると永久に先に進まなくなることがありあるのかなぁと思います。
[ ]
RE:11672 IMAPでのダウンロード時の挙動についてNo.11673
さん 23/08/18 18:54 [ コメントを投稿する ]
   お世話になります。

 すみません、デバッグレベル0での処理はまだ7.21に入っていないものと思い込んでいました。
 確かにデバッグレベル0で大丈夫そうです。
 いろいろありがとうございました。

 以上、今後ともよろしくお願いいたします。
[ ]

[ 新規に投稿する ]