|
Packit |
eb1bc2 |
#!/usr/bin/perl -w
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
use strict;
|
|
Packit |
eb1bc2 |
die unless @ARGV;
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
my($mod, @args) = @ARGV;
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
eval "require $mod"; die $@ if $@;
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
$a = substr(join("", "a" .. "z",) x 800, 0, 8 * 1024);
|
|
Packit |
eb1bc2 |
my $count = 4*1024;
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
use Time::HiRes qw(time);
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
my $before = time;
|
|
Packit |
eb1bc2 |
my $ctx = $mod->new(@args);
|
|
Packit |
eb1bc2 |
for (1 .. $count) {
|
|
Packit |
eb1bc2 |
$ctx->add($a);
|
|
Packit |
eb1bc2 |
}
|
|
Packit |
eb1bc2 |
print $ctx->hexdigest, "\n";
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
my $sec = time - $before;
|
|
Packit |
eb1bc2 |
my $bytes = length($a) * $count;
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
print "$bytes/$sec\n";
|
|
Packit |
eb1bc2 |
|
|
Packit |
eb1bc2 |
my $vers = do { no strict 'refs'; ${$mod . '::VERSION'} };
|
|
Packit |
eb1bc2 |
printf "$mod $vers\t%.2f MB/s\n", $bytes/(1024*1024*$sec)
|