CDB はどれくらい速いか

This entry was posted by on Friday, 30 December, 2005
>scim-skk で CDB 対応を行ったけれども、けっきょくこれがどんくらい速いか、ということがよくわかっていない。そこでそれを評価してみようっていうことで、簡単なプログラムを組んでみた。 > >で、結果。ランダムに選択した10万件のデータで検索したところ、 > >辞書ファイル版
% time ./cdbtest
./cdbtest 3.13s user 0.03s system 97% cpu 3.219 total
> >CDBファイル版
% time ./cdbtest
./cdbtest 0.29s user 0.02s system 99% cpu 0.304 total
> >ということで、10倍ほど速いらしいことがわかった。 > >とはいえ、数を減らしていくと、1000件くらいでほとんど差が生まれない。いくらSKKとはいえそんなにたくさんのエントリーを検索することはまずないと思うので(そもそも1回でも検索したものはメモリ上にキャッシュが残る)、ようするに「大差ない」ということになる。でもまぁ、cdbの方が圧倒的に速いはずなのだけどね。 > >cdb は mmap するだけだけど、辞書ファイルは mmap した上にいったんファイルを全てなめて行頭位置を記録しているので、初期化コストがだいぶ違うのではないか、と思っていたのだが、こちらは誤差の範囲内になってしまった。けれども、この辺は mmap の実装によって変わるのではないかと思う。 >

Comments are closed.