*Article*


1998 | 12
1999 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2000 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2001 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2002 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2003 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2006 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08
2008 | 01 | 02 | 03 | 04 | 05 | 07 | 08 | 09 | 10
先月 2006年03月 来月
SUN MON TUE WED THU FRI SAT
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2006年03月23日(木)

Ruby の Digest 関数ベンチマーク

ふと、 ruby の Digest 関数のベンチマークを取ってみた。

* Pentium4 3.8GHz (Cygwin)

% ruby -v 
ruby 1.8.4 (2005-12-24) [i386-cygwin]
% ruby hash-bench.rb
                    user     system      total        real
Digest::MD5     3.047000   0.000000   3.047000 (  3.047000)
Digest::SHA1    3.156000   0.000000   3.156000 (  3.187000)
Digest::SHA256  4.078000   0.000000   4.078000 (  4.094000)
Digest::SHA384  8.203000   0.000000   8.203000 (  8.203000)
Digest::SHA512  8.250000   0.000000   8.250000 (  8.250000)
Digest::RMD160  3.375000   0.000000   3.375000 (  3.375000)

* Pentium4 3.8GHz (mswin32)

% ruby -v
ruby 1.8.4 (2005-12-24) [i386-mswin32]
% ruby hash-bench.rb
                    user     system      total        real
Digest::MD5     3.328000   0.031000   3.359000 (  3.360000)
Digest::SHA1    5.297000   0.000000   5.297000 (  5.312000)
Digest::SHA256  4.140000   0.000000   4.140000 (  4.156000)
Digest::SHA384 11.204000   0.078000  11.282000 ( 11.313000)
Digest::SHA512 11.375000   0.047000  11.422000 ( 11.422000)
Digest::RMD160  4.843000   0.031000   4.874000 (  4.875000)

* Pentium3 1GHz (Linux)

% ruby -v
ruby 1.8.4 (2005-12-24) [i486-linux]
% ruby hash-bench.rb
                    user     system      total        real
Digest::MD5     7.500000   0.230000   7.730000 (  7.740531)
Digest::SHA1   13.880000   0.230000  14.110000 ( 14.125126)
Digest::SHA256 10.700000   0.250000  10.950000 ( 10.965380)
Digest::SHA384 25.400000   0.230000  25.630000 ( 25.658187)
Digest::SHA512 25.570000   0.210000  25.780000 ( 25.829633)
Digest::RMD160  9.710000   0.320000  10.030000 ( 10.038026)

* Pentum2 333MHz (Linux)

% ruby -v
ruby 1.8.4 (2005-12-24) [i486-linux]
% ruby hash-bench.rb
                    user     system      total        real
Digest::MD5    17.170000   0.560000  17.730000 ( 17.943352)
Digest::SHA1   39.290000   0.710000  40.000000 ( 40.467034)
Digest::SHA256 26.750000   0.640000  27.390000 ( 27.704968)
Digest::SHA384 69.940000   0.670000  70.610000 ( 71.399287)
Digest::SHA512 70.380000   0.790000  71.170000 ( 71.998776)
Digest::RMD160 26.700000   0.690000  27.390000 ( 27.714503)

* USIIIi 1.06G (Solaris 8)

% ruby -v
ruby 1.8.2 (2004-12-25) [sparc-solaris2.8]
% ruby hash-bench.rb
                    user     system      total        real
Digest::MD5     6.980000   0.000000   6.980000 (  6.980063)
Digest::SHA1   10.570000   0.000000  10.570000 ( 10.607394)
Digest::SHA256  8.480000   0.000000   8.480000 (  8.506520)
Digest::SHA384 27.780000   0.000000  27.780000 ( 27.991965)
Digest::SHA512 28.010000   0.000000  28.010000 ( 28.224850)
Digest::RMD160  7.780000   0.000000   7.780000 (  7.940436)

* 比較

各マシンでの MD5 の計算時間との比をグラフにすると、以下のようになった。
Cygwin を除くと、MD5 < RMD160 <= SHA256 < SHA1 < SHA384 = SHA512 って感じですな。

以上、1 日分です。
Powered by hns-2.19.6, HyperNikkiSystem Project

戻る