ども鴫原です。

> どーなんでしょうねえ。過去に試した範囲では微妙でした。
> marshalの高速さ(Cで書かれてる)とオーバースペックさのバランスで。

うーん、このmarshalなんですが、どうも条件がはっきりしないんですけど、
loadで

./core/cache.rb:164: [BUG] Segmentation fault

で落ちることがあるようです。テストで小さなhashやarrayをdumpした奴を読み込
むときには問題なさそうなんですけど、実際にSGmailに組み込んでみると症状が
でます。

妙なのは、始めから落ちるのではなく、同じデータを何度もloadすると落ちる場
合や、SGmailを再実行して前回保存したキャッシュデータを読み込もうとすると
いきなり落ちたり、と同じデータを読み込んでいても状況によって症状が違って
来ます。

また、dbmにヘッダを入れるときにも、marshal#dumpしてるんですが、こちらでは
まだ落ちたことはありません。

#どうもデータ構造が複雑になって来ると落ちるような:-(。

> ところで、dbmって場合によっては4Kの制限があるんですが(かつ
> Rubyからその制限を感知する方法がない)、それは問題ないんです
> か?

私の場合、メール本文はdbmは使わず、ヘッダ部分のみdbmに入れてるんで多分大
丈夫だろうと、たかをくくってるんですけどねえ。

#トンでもなくでかいヘッダがあるとやばいかも(^^;)