And not only parameters, but unused variables also: https://github.com/rakudo/rakudo/blob/ebb0521bd259e9f81e4b127527534090969f398e/src/core/native_array.pm#L1399
On 2017-10-14 20:53:03, alex.jakime...@gmail.com wrote: > FWIW I made a throwaway script that looks for unused params, and there > are many > of these in rakudo sources. Of course, most of these cases are not in > hot > paths, but the overall performance benefit may be very noticeable. > > There are also cases like this: > https://github.com/rakudo/rakudo/blob/nom/src/core/IO/Socket/Async.pm#L313- > L315 > where named arg is present in the signature but does absolutely > nothing (or so > it seems?). > > Dunno if I should post the results. There are many false-positives and > I guess > many cases are not caught at all, so a proper approach is needed if we > really > want to replace all these with $. > > On 2017-10-14 20:12:49, alex.jakime...@gmail.com wrote: > > Oh, I guess it applies to methods as well. > > > > On 2017-10-14 20:10:15, alex.jakime...@gmail.com wrote: > > > Code: > > > sub f1($a, $, $, $, $, $) { 1 }; > > > my $s; > > > $s += f1($_, $_, $_, $_, $_, $_) for ^1_000_000; > > > say now - BEGIN now > > > > > > Result: > > > 0.43209886 > > > > > > > > > Code: > > > sub f2($a, $b1, $b2, $b3, $b4, $b5) { 1 }; > > > my $s; > > > $s += f2($_, $_, $_, $_, $_, $_) for ^1_000_000; > > > say now - BEGIN now > > > > > > Result: > > > 0.6635439 > > > > > > > > > None of the params are used but still replacing them with just $ > > > makes > > > things run faster. > > > > > > The difference is measurable and you can increase the number of > > > loops > > > to observe it even better. > > > > > > > > > This ticket is motivated by a pull request which used that > > > observation > > > to speed things up in rakudo: > > > https://github.com/rakudo/rakudo/pull/1196 > > > > > > > > > This is Rakudo version 2017.09-375-ga0f29e0df built on MoarVM > > > version > > > 2017.09.1-594-gb9d3f6da > > > implementing Perl 6.c.