2010年12月25日 (土曜日)

15:25:34 # Life 冬休みの宿題ということで、Apacheのソースコードを読んでみている。 httpd-2.2.17/modules/cache/cache_hash.c に文字列に対してのハッシュ関数はなぜ 33の掛け算でよいのか、ということが説明してあってへぇ、と思った。 一見したら、33でかけるだけなんてなんてひどいんだ、という感想をいだくけど、 他の数字でかける場合と比べてこれは妥当らしい。 しかし、掛け算じゃない方法とは比べていないのでそこは注意。 どうやって評価するのがよいのかな。まずはハッシュ関数自体の速度を計測するのと、自分が利用しようとおもうデータ例の文字列の列にハッシュ関数をかけて、衝突の回数を計測すればよいのだろうか。 文字コードとかによってはハッシュ関数は変わると思うんだけどどれくらい変わるんだろ。

Junichi Uekawa

$Id: dancer-diary.el,v 1.94 2009/10/21 14:02:48 dancer Exp $