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で大丈夫そうです。
 いろいろありがとうございました。

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

[ ]