perl MD5 と SHA-256 のベンチマーク

結果

$ perl bench-digest.pl 100000000
Benchmark: timing 100000000 iterations of     MD5, SHA-256...
       MD5: 40 wallclock secs (40.22 usr +  0.02 sys = 40.24 CPU) @ 2485089.46/s (n=100000000)
   SHA-256: 392 wallclock secs (391.78 usr +  0.30 sys = 392.08 CPU) @ 255049.99/s (n=100000000)

コード

#!/usr/bin/perl

use strict;
use warnings;
use Benchmark qw( timethese );
use Digest::MD5 qw( md5_hex );
use Digest::SHA qw( sha256_hex );

my $count = shift(@ARGV) || 1000000;
my $tmp = 0;

timethese($count, {
	'    MD5' => sub {     md5_hex( ++ $tmp ) },
	'SHA-256' => sub {  sha256_hex( ++ $tmp ) },
});

Perlバージョン

$ perl -v

This is perl 5, version 18, subversion 4 (v5.18.4) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)

Copyright 1987-2013, Larry Wall

...略...