On Thursday 10 April 2008 18:35:00 Patrick R. Michaud wrote:

> > [OO] Optimized isa() vtable entry for Class.  Instead of delegating
> > most of its work to isa_pmc(), this entry now performs its work
> > directly.  This is slightly faster and avoids creating a temporary PMC.
> >
> > The Perl 6 build process is now 19.78% faster with this patch, and all
> > tests still pass.
>
> I'm guessing "slightly faster" here was meant as humorous understatement...
> A nearly 20% improvement in _overall_ build time?!?

It's only the NQP -> PIR generation that I can prove is 20% faster.  The rest 
of it is probably faster.

> I'm a little curious as to _why_ updating isa() for Class makes such
> a big difference -- what is (or was) calling isa() so frequently on a
> Class object?

I think it's everything that called isa on a Class or Object.  It wasn't so 
much the frequency of the calls, but that every call allocated a temporary 
PMC that almost immediately went unused.  Allocating fewer unnecessary PMCs 
in hot paths dramatically improves our performance at the moment.  A better 
GC will help, but it's still a good practice.

-- c

Reply via email to