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]

Reply via email to