[Mew-dist 11519] Re: immv to large size directory
Kazumasa Utashiro
utashiro at example.com
1999年 11月 29日 (月) 14:21:57 JST
From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [Mew-dist 11515] Re: immv to large size directory
Date: Mon, 29 Nov 1999 13:23:22 +0900
> > こころなしか速くなったような気がします。
> > どうもありがとうございました。
>
> こころなしだと、あまり期待に添てないということですね。
Folder.pm への変更が、どの程度効くのか不明ですが、
From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [Mew-dist 11504] Re: immv to large size directory
Date: Sun, 28 Nov 1999 00:14:00 +0900
> + # ad hoc but fast
> + if (scalar(@messages0) == 1 && $messages0[0] eq 'new') {
> + local(*MDIR);
> + my(@msgs, $i);
> + my $max = "1";
> + opendir(MDIR, $folder_dir) || im_die("can't open $folder.\n");
> + @msgs = grep(/^\d+$/, readdir(MDIR));
> + closedir(MDIR);
> + foreach $i (@msgs) {
> + if ($max < $i) {
> + $max = $i;
> + }
> + }
> + return $max;
> + }
> +
数が多いと @msgs の処理も馬鹿にならないかもしれないので、配列を使わず
に一度にやっちゃった方がいいんじゃない?
while (defined($i = readdir(MDIR))) {
if ($i =~ /^\d+$/ and $max < $i) {
$max = $i;
}
}
みたいな感じで。ちなみに上のコードはメール書きながら書いただけなので、
テストも何もしてません。
それと、メッセージが一つもなかった時には 1 が返るけどそれでいいのね。
--utashiro
Mew-dist メーリングリストの案内