поиск максимума
Jan. 16th, 2007 01:43 pm
# perl -MBenchmark=timethese -de0
DB<1> @a = map { int rand (1024) } 1..1024
DB<2> sub A () { return (sort { $a <=> $b } @a)[-1]; }
DB<3> sub B () { my $max = $a[0]; \
foreach (@a[1..$#a]) { $max = $max > $_ ? $max : $_; } \
return $max; }
DB<4> timethese (10_000,{ 'A' => \&A,'B' => \&B })
Benchmark: timing 10000 iterations of A, B...
A: 17 wallclock secs (16.34 usr + 0.00 sys = 16.34 CPU) @ 611.85/s (n=10000)
B: 5 wallclock secs ( 3.81 usr + 0.00 sys = 3.81 CPU) @ 2623.29/s (n=10000)
такие дела. но для одноразового поиска пойдет.