Damn.
The simpliest test:
use Benchmark qw/timethis/;
timethis(-1, sub {test(1,2,3,4,5,6,7,8,9)});
timethis(-1, sub {my @b = ('what', 'the', 'fk', 'is', 'goin', 'on', '?')});
sub test {
my @a = @_;
}
And the not so simple results:
5.8.8:
timethis for 1: 2 wallclock secs ( 1.10 usr + 0.00 sys = 1.10 CPU) @
499746.50/s (n=550502)
timethis for 1: 1 wallclock secs ( 1.05 usr + -0.01 sys = 1.05 CPU) @
365810.63/s (n=382958)
5.10.0:
timethis for 1: 1 wallclock secs ( 1.04 usr + 0.00 sys = 1.04 CPU) @
385313.68/s (n=400365)
timethis for 1: 1 wallclock secs ( 1.03 usr + 0.00 sys = 1.03 CPU) @
305039.52/s (n=314572)
Looks like some perfomance bug in list assignment especially for the '@_'
special array.
Damn it's just a function call (not method) and shifting the params. And it
is so extremely slow.
But this doesn't explain 2 times perfomance penalty in 'lite version' of
set_inherited. There must be something else.
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]