2006年10月25日

[Namazu-devel-ja 1321] Re: mknmzの処理時間短縮

寺西です。

Tadamasa Teranishi wrote:
>
> > アルゴリズムという点では同じ箇所にある
> > $word = substr $word, 1;
> > を
> > chop($word);

> > にしてもハッシュ値の生成上は使えそうで処理も
> > 少し軽そうに思えるのですが、よくわかりませんでした。
>
> chop と substr($string, 0, -1) のどっちが速いかということですね?

substr($string, 1) だとコピーが発生するが、chop や
substr($string, 0, -1) なら、お尻を切るだけなのでコピーが発生せず
速いってことですかね。

それなら、こんな感じで書き換えると速くなるでしょうか?
# 試してはいませんので、むしろ遅いかも...。

sub hash ($) {
my ($word) = @_;

my $hash = 0;
my $i = 0;
my @word = split(//, $word);
foreach $word (@word) {
$hash ^= $Seed[$i++ & 0x03][ord($word)];
}
return $hash & 65535;
}
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2006年10月25日 09:52
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/48207
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。