[mew-dist 24676] Re: local scan をちょっとだけ速く

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2004年 3月 2日 (火) 12:23:50 JST


From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
Subject: [mew-dist 24323] local scan をちょっとだけ速く

> local な scan ですが、添付のパッチのようにすると、650通の
> folder で scan にかかる時間が
> 
> (1) folder がネットワーク越しにあるとき (Meadow から samba)
>  83秒 => 71秒 (15% 速度向上)

ローカルフォルダのスキャンに関する白井さんのこのパッチですが、

> 
> --- mew-local.el.orig	Tue Jan  6 20:18:35 2004
> +++ mew-local.el	Tue Jan  6 11:46:14 2004
> @@ -316,6 +316,8 @@
>       (goto-char (point-max))
>       (forward-line -1)
>       (when (looking-at "^\\.$")
> +       (unless mew-xemacs-p
> +	 (process-send-string process "\n"))
>         (mew-dot-delete)
>         (goto-char (point-min))
>         (unless first
> @@ -333,8 +335,9 @@
>         (mew-scan-body vec draftp)
>         (mew-scan-insert-line bnm vec width nil mark)
>         (delete-region (point-min) (point-max))
> -       (mew-timing) ;; for XEmacs
> -       (process-send-string process "\n")))))
> +       (when mew-xemacs-p
> +	 (mew-timing) ;; for XEmacs
> +	 (process-send-string process "\n"))))))

Emacs に対して、mew-timing を外すことで速くし、変なところで "\n" を送る
ことで遅くしているように思います。

以下のロジックが正しと思います。僕の環境だと、体感的に随分速くなる気が
するのですが、いかがでしょうか?

# すぐに commit する予定です。

--かず

Index: mew-local.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-local.el,v
retrieving revision 1.83
diff -c -r1.83 mew-local.el
*** mew-local.el	1 Feb 2004 13:26:38 -0000	1.83
--- mew-local.el	2 Mar 2004 03:20:50 -0000
***************
*** 316,323 ****
       (goto-char (point-max))
       (forward-line -1)
       (when (looking-at "^\\.$")
-        (unless mew-xemacs-p
- 	 (process-send-string process "\n"))
         (mew-dot-delete)
         (goto-char (point-min))
         (unless first
--- 316,321 ----
***************
*** 336,343 ****
         (mew-scan-insert-line bnm vec width nil mark)
         (delete-region (point-min) (point-max))
         (when mew-xemacs-p
! 	 (mew-timing) ;; for XEmacs
! 	 (process-send-string process "\n"))))))
  
  (defun mew-local-sentinel (process event)
    (let* ((pnm (process-name process))
--- 334,341 ----
         (mew-scan-insert-line bnm vec width nil mark)
         (delete-region (point-min) (point-max))
         (when mew-xemacs-p
! 	 (mew-timing))
!        (process-send-string process "\n")))))
  
  (defun mew-local-sentinel (process event)
    (let* ((pnm (process-name process))



Mew-dist メーリングリストの案内