Thanks, this is really helpful. In addition, is there a way to print the cpu cycles taken from *ux command prompt? I have worked with tools that, at the end of their job, print out the cpu cycles it took for them. I would assume that they use some command from *ux to do this.
Regards On Thu, Mar 20, 2008 at 6:21 PM, Chas. Owens <[EMAIL PROTECTED]> wrote: > 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/