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