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.

Reply via email to