[Mew-dist 08425] Re: im-111 で急に遅くなった imls

SAKAI Kiyotaka ksakai at example.com
1999年 4月 2日 (金) 10:43:18 JST


>> In article <19990401163103T.os at example.com>, OHARA Shigeki <os at example.com> writes:

> これですが、~/Mail が普通の(?)ファイルシステムだと
> 大して気にならないのかも知れませんが、
> NFS なファイルシステムで利用していると、さすがにかなり遅いです。

なるほどです。

> これですが、sort 、pack の際には、
> フォルダ内のディレクトリのリストの cache を生成し、
> imls の際にはファイルかディレクトリかのチェックは行なわず、
> その cache のみを参照する、という風にすれば速くなるように思うのですが
> どうでしょうか?

IM のコマンドは 1回1回、別のコマンドとして起動しますので、folder 情報
が IM のコマンドが起動される間に更新されていくことを考えると、cache の
利用は難しいと思います。

そうすると、以下のパッチのようにオプションによって制御するしかなさそう
ですね。

デフォルトは従来通りで、UseNumericFolder をセットすると \d+ の名前のフォ
ルダ名を扱えるようになる代わりに、環境によっては IM の動作がかなり遅く
なります。
-- 
酒井 清隆 (E-mail: ksakai at example.com)

-------------- next part --------------
Index: imsetup.in
===================================================================
RCS file: /home/ksakai/cvsroot/im-113/imsetup.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 imsetup.in
--- imsetup.in	1999/04/02 01:11:40	1.1.1.1
+++ imsetup.in	1999/04/02 01:34:36
@@ -298,6 +298,9 @@
 ### Folder style in \$NewsDir (saved news articles)
 #PreserveDot=off		# off: /news/group/, on: /news.group/
 
+### Folder type
+#UseNumericFolder=no		# Use numeric folder, such as 123, 456.
+
 ### Mode for creation
 #FolderMode=0700
 #MsgMode=0600
Index: IM/Config.pm.in
===================================================================
RCS file: /home/ksakai/cvsroot/im-113/IM/Config.pm.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Config.pm.in
--- Config.pm.in	1999/04/02 01:11:40	1.1.1.1
+++ Config.pm.in	1999/04/02 01:21:26
@@ -44,7 +44,7 @@
     expand_path
     pop_timeout imap_timeout nntp_timeout dns_timeout
     connect_timeout command_timeout rcv_buf_siz
-    db_type file_attr);
+    db_type use_numeric_folder file_attr);
 
 ##
 ## Constant
@@ -136,6 +136,7 @@
     'connecttimeout;i;60;ConnectTimeout'  => 'Timeout for connection making',
     'commandtimeout;i;300;CommandTimeout' => 'Timeout for each command',
     'rcvbufsiz;i;;RcvBufSiz'		=> 'Receive buffer size of TCP',
+    'usenumericfolder;b;;UseNumericFolder' => 'Use numeric folder',
     );
 
     # these vars should be in current package?
@@ -901,6 +902,10 @@
 
 sub db_type () {
     return $IM_DB_TYPE;
+}
+
+sub use_numeric_folder () {
+    return $UseNumericFolder;
 }
 
 ###
Index: IM/Folder.pm
===================================================================
RCS file: /home/ksakai/cvsroot/im-113/IM/Folder.pm,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Folder.pm
--- Folder.pm	1999/04/02 01:11:40	1.1.1.1
+++ Folder.pm	1999/04/02 01:23:52
@@ -14,7 +14,8 @@
 require 5.003;
 require Exporter;
 
-use IM::Config qw(expand_path context_file inbox_folder folder_mode);
+use IM::Config qw(expand_path context_file inbox_folder folder_mode
+		  use_numeric_folder);
 use IM::Util;
 use integer;
 use strict;
@@ -140,7 +141,11 @@
     my @filesinfolder;
 
     opendir(DIR, $folder_dir) || im_die("can't open $folder_dir.\n");
-    @filesinfolder = sort {$a <=> $b} grep(/^\d+$/ && -f "$folder_dir/$_", readdir(DIR));
+    if (use_numeric_folder()) {
+	@filesinfolder = sort {$a <=> $b} grep(/^\d+$/ && -f "$folder_dir/$_", readdir(DIR));
+    } else {
+	@filesinfolder = sort {$a <=> $b} grep(/^\d+$/, readdir(DIR));
+    }
     closedir(DIR);
 
     return @filesinfolder;
Index: cnf.im/SiteConfig.in
===================================================================
RCS file: /home/ksakai/cvsroot/im-113/cnf.im/SiteConfig.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 SiteConfig.in
--- SiteConfig.in	1999/04/02 01:11:42	1.1.1.1
+++ SiteConfig.in	1999/04/02 01:35:41
@@ -38,6 +38,9 @@
 # folder style in $NewsDir
 #PreserveDot=off
 
+### Folder type
+#UseNumericFolder=no		# Use numeric folder, such as 123, 456.
+
 # mode for creation
 #FolderMode=0700
 #MsgMode=0600
Index: dot.im/Config
===================================================================
RCS file: /home/ksakai/cvsroot/im-113/dot.im/Config,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Config
--- Config	1999/04/02 01:11:42	1.1.1.1
+++ Config	1999/04/02 01:35:06
@@ -51,6 +51,9 @@
 ### Folder style in $NewsDir (saved news articles)
 #PreserveDot=off		# off: /news/group/, on: /news.group/
 
+### Folder type
+#UseNumericFolder=no		# Use numeric folder, such as 123, 456.
+
 ### Mode for creation
 #FolderMode=0700
 #MsgMode=0600


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