use Benchmark;
####
$x = timeit($count, 'CODE');
## CODE is run $count times
## $x becomes a Benchmark object which contains the result
print "Result from $count loops: ";
print timestr($x), "\n";
##
##
$x = timethis($count, 'CODE');
## or even just:
timethis($count, 'CODE');
##
##
@x = timethese($count, { 'one','CODE1', 'two','CODE2' });
##
##
timethese($count, {
'one' => 'CODE1',
'two' => 'CODE2',
'pizza' => 'CODE_X', ## etc....
});
##
##
$x = timeit($count, 'CODE1');
$y = timeit($count, 'CODE2');
$mydiff = timediff($x, $y);
##
##
#!/usr/bin/perl
use Benchmark;
$count = shift || die "Need a count!\n";
## Create a dummy list of 1000 random 6 letter words
srand();
for (1..1000) {
push(@words,
chr(rand(26)+65) . chr(rand(26)+65) . chr(rand(26)+65) .
chr(rand(26)+65) . chr(rand(26)+65) . chr(rand(26)+65));
}
## Method number one - a numeric sort
sub One {
@temp = sort {$a <=> $b} @words;
}
## Method number two - an alphabetic sort
sub Two {
@temp = sort {$a cmp $b} @words;
}
## We'll test each one, with simple labels
timethese (
$count,
{'Method One' => '&One',
'Method Two' => '&Two'}
);
exit;
##
##
Benchmark: timing 10 iterations of Sort One, Sort Two...
Sort One: 0 secs ( 0.33 usr 0.00 sys = 0.33 cpu)
(warning: too few iterations for a reliable count)
Sort Two: 1 secs ( 0.48 usr 0.01 sys = 0.49 cpu)
##
##
Benchmark: timing 150 iterations of Sort One, Sort Two...
Sort One: 5 secs ( 4.89 usr 0.01 sys = 4.90 cpu)
Sort Two: 8 secs ( 7.12 usr 0.01 sys = 7.13 cpu)
##
##
$count = shift || die "Need a count!\n";