[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 メーリングリストの案内