[mew-dist 27252] Re: slow encryption in mew-5.1.50
Tatsuya Kinoshita
tats at example.com
2006年 8月 24日 (木) 20:08:47 JST
On August 24, 2006, [mew-dist 27241],
kazu (at iij.ad.jp) wrote:
> > Mew 5.1.50リリース以降、`C-c C-b' (sign and encrypt)の動作がとても
> > 遅くなってしまっています。
>
> 僕の環境では、PGP でも S/MIME でも、さくっと作成できます。
>
> 対象としているのは、単純なテキストですか?
いいえ、バイナリファイルを数MB添付して、PGP (GnuPG 1.4.5)を使った
場合です。
例として挙げたとおり、mew-5.1.tar.gz (926KB)とmew-4.2.tar.gz
(903KB)の計2MB弱となるファイルを添付した場合には、30秒以上かかります。
もっと大きなファイルだと、もっとかかります。
mew-encode.el (mew-save-transfer-form)での下記の変更を元に戻すと、
1〜2秒程度で済むようになりました。
----
@@ -869,13 +894,20 @@
(mew-erase-buffer)
(mew-insert-buffer-substring draft-buf beg end)
(setq sbeg (point-min) send (point-max))))
- (unless mew-cs-text-for-net
- (goto-char sbeg) ;; just in case
- (mew-lf-to-crlf)
- (setq send (point-max)))
+ (goto-char sbeg) ;; just in case
+ (if (and cte (mew-case-equal cte mew-bin)
+ (re-search-forward mew-eoh))
+ (progn
+ (forward-line)
+ (save-restriction
+ (narrow-to-region sbeg (point))
+ (goto-char sbeg)
+ (mew-lf-to-crlf)))
+ (mew-lf-to-crlf))
+ (setq send (point-max))
(setq file (mew-make-temp-name))
(mew-frwlet
- mew-cs-dummy mew-cs-text-for-net
+ mew-cs-dummy mew-cs-binary
(write-region sbeg send file nil 'no-msg))
(if retain
(mew-remove-buffer tmpbuf)
----
ちなみに環境はDebianのLinux 2.6.17, glibc 2.3.6で、Emacs 22.0.50
(2006-08-17)で約30秒、Emacs 21.4で約2分、と大幅な速度低下が見られます。
XEmacs 21.4.19では、速度低下は数秒程度に留まっています。
--
木下達也
Mew-dist メーリングリストの案内