[Anthy-dev 2487] Re: gcanna.ctd の頻度について

Back to archive index

YamaKen yamak****@bp*****
2005年 10月 3日 (月) 23:24:38 JST


ヤマケンです。

At Mon, 03 Oct 2005 22:55:48 +0900,
yusuk****@w5***** wrote:
> Yuichi Yoshida wrote:
> >>  Berkeley DBなどを使うのはどうでしょう。大抵のスクリプト言語は自身が
> >>持つハッシュと同じインターフェースでBDBを扱えて、オンメモリでそのまま
> >>ハッシュに持たせるよりはメモリ効率がよいようです。
> 
> > DBをインストールして使いかたを覚える手間を今まで惜しんできていたのですが、
> > そうも言ってられないかもしれないですね…。
> これ自体は極めて簡単で、rubyなら配布物の中のdbmtest.rbという
> サンプルを見てもわかるのですが
> : require 'dbm'
> : d = DBM.open("test")
> : d['読み'] = '単語'
> こんな感じで普通のハッシュとして使うと、勝手にデータベースの
> ファイルに保存してくれます。
> これに手元の25MぐらいあるCSVっぽいファイルを入れてみると、
> $ time ruby a.rb
> real 10m47.432s
> user  0m15.673s
> sys   0m19.650s
> $ ls -l test.db
> -rw-rw-r-- 1 yusuke yusuke 13422184 Oct 3 22:43 test.db
> というふうに富豪的にやってたら日が暮れそうな感じでした。
> (VMwareでディスクは遅いのですが、450MBほどのメモリは割り
>  当ててあり、それほどダメな環境では無いと思います。)

dbmは実装によって随分パフォーマンスに差があるので他のものも一応
試してみてはどうでしょう。qdbmが評判が良いようですね。

また、Berkeley DBのようなトランザクションベースのものではチュー
ニングによってもだいぶ変わります。noatimeとかasync等のファイルシ
ステム回りはすぐに試せるので、やってみて損は無いと思います。

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
Back to archive index