Digest:: ベンチマーク

| コメント(0) | トラックバック(0)



ふと気になったのでDigest::MD5とDigest::SHA1の差を見てみた。ちなみにたまに使う事のあるMD5を2回かけるベンチもついでにとった。



daisuke@beefcake benchmark$ perl digest_bench.pl
Benchmark using:
Digest::MD5 = 2.36
Digest::SHA1 = 2.11
====
# Generating tokens... (max length = 10)
# Done, running benchmark... (100000 iterations)
Rate double_md5 sha1 md5
double_md5 21231/s -- -36% -46%
sha1 33003/s 55% -- -16%
md5 39370/s 85% 19% --
# Generating tokens... (max length = 100)
# Done, running benchmark... (100000 iterations)
Rate double_md5 sha1 md5
double_md5 19608/s -- -25% -43%
sha1 26247/s 34% -- -23%
md5 34130/s 74% 30% --
# Generating tokens... (max length = 1000)
# Done, running benchmark... (100000 iterations)
Rate sha1 double_md5 md5
sha1 6859/s -- -29% -45%
double_md5 9718/s 42% -- -22%
md5 12422/s 81% 28% --
# Generating tokens... (max length = 10000)
# Done, running benchmark... (100000 iterations)
Rate sha1 double_md5 md5
sha1 776/s -- -50% -51%
double_md5 1562/s 101% -- -1%
md5 1580/s 104% 1% --
daisuke@beefcake benchmark$

md5_hexなりsha1_hexにいれるデータサイズが大きくなればなるほどsha1とmd5の差が大きくなるかと思いきや、10 -> 100になる段階で一旦性能がよくなり、1000を超えると今度はdouble-md5に負けてしまうところ。


これを見るとどうもハッシュというものはデータサイズがせいぜい100バイト前後というのがスピードを求める時の理想的な使い方のようだ。


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ