On Thu, Mar 20, 2008 at 7:21 AM, Sharan Basappa
<[EMAIL PROTECTED]> wrote:
snip
> I am implementing two algos to solve same problem. I would like to
> measure the performance of these 2 algos
> (in terms of CPU cycles or wall clock etc.)
> I have seen some explanation in some library document in perl the
> comparison between different algos.
snip
You can use the Benchmark* module to compare two or more functions.
What follows is a script that compares various methods of rotating an
array. You should also look into big O and little o notation. The
first few chapters of any good algorithms book should tell you what
you need to know.
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark;
my @a;
my %subs = (
left_push_shift => sub { push @a, shift @a; return 0 },
left_slice => sub { @a = (@a[1..$#a], $a[0]); return 0 },
right_unshift_pop => sub { unshift @a, pop @a; return 0 },
right_slice => sub { @a = (pop @a, @a); return 0 },
);
print "test with ten elements\n";
for my $sub (sort keys %subs) {
@a = 1 .. 9;
$subs{$sub}->();
printf "%-20s %s\n", $sub, join " ", map {"[$_]"} @a;
}
for my $n (10, 100, 1_000, 10_000) {
@a = 1 .. $n;
print "results for n of $n\n";
Benchmark::cmpthese(-1, \%subs);
}
* http://perldoc.perl.org/Benchmark.html
--
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/