in reply to Re^15: Specializing Functions with Currying
in thread Specializing Functions with Currying
Strange. Taking your exact code from above and runnning here I get:
P:\test>type 381208-2.pl #! perl -slw #use strict; use Benchmark qw[ cmpthese ]; use List::Util qw[ first ]; our @array = 1 .. 100_000; cmpthese( -1, { func_10th => sub { first { length > 3 } @array; }, iter_10th => sub { for ( @array ) { return $_ if length > 3; } }, }); cmpthese( -1, { func_last => sub { $_ = first { length > 5 } @array; }, iter_last => sub { for ( @array ) { return $_ if length > 5; } }, }); P:\test>381208-2 Rate func_10th iter_10th func_10th 1196/s -- -61% iter_10th 3076/s 157% -- Rate func_last iter_last func_last 22.6/s -- -23% iter_last 29.3/s 30% --
Which indicates something about the difference in OS, but I'm not sure what.
I also wonder what context Benchmark calls the subs in? And is first optimised for the void context case?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^17: Specializing Functions with Currying
by Aristotle (Chancellor) on Aug 09, 2004 at 16:27 UTC |