[Mew-dist 11561] Re: immv to large size directory

yamagata at example.com yamagata at example.com
1999年 11月 30日 (火) 18:40:21 JST


こんばんは、山形です。

In message <19991129141847Y.utashiro at example.com>,
Kazumasa Utashiro wrote

> 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
> 
> > > こころなしか速くなったような気がします。
> > > どうもありがとうございました。
> > 
> > こころなしだと、あまり期待に添てないということですね。

どうもすみません。

そういうわけではなく体感速度としては
immvはずいぶん早くなった気がします。
timeでみても4万通くらいあるfolderにimmvするのが3秒くらいかかっていたのが、
1秒前後になったのでたいへん嬉しいです。

が、しかし、パッチ中の
	return $max;
は、
	return "$folder_dir/$max";
のまちがいであることに気づかず、
Mailの下が大惨事になっていたため返事が遅れました。(笑)

#結果、~/.im/にrefileされてしまい「new」のさす値が変化しないため、
#こまめにrefileしてこまめにrename(2)が上書きして
#結果mailが焼失しておりました。うぐう。

mew-use-immvをnilにしてやってみた場合は
先ほどの4万通ある単一のfolderにまとめてrefileという場合は
パッチ後のimmvより少々時間がかかるようですが、
+inboxで「x」を押したときのようにimmvが起動されまくるような場合は
時間がかからないようでした。

immvの起動時間も積み重なるとわりと馬鹿にならないのでしょうか。

> 数が多いと @msgs の処理も馬鹿にならないかもしれないので、配列を使わず
> に一度にやっちゃった方がいいんじゃない?
> 
> 	while (defined($i = readdir(MDIR))) {
> 	    if ($i =~ /^\d+$/ and $max < $i) {
> 		$max = $i;
> 	    }
> 	}
> 
> みたいな感じで。ちなみに上のコードはメール書きながら書いただけなので、
> テストも何もしてません。

これについてはまだテストしてません。

--



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