Stéphane Payrard <[EMAIL PROTECTED]> wrote: > To avoid to go back the slow world of perl5 where many things > need to be tested before figuring what to do, performancewise, > there is little choice but to have two versions of each PMC > class, a fast one that is devoid of property support and another > slow one that does support them.
We basically have that already. A plain PerlInt doesn't have the PMC_EXT structure attached. During DOD it's marked in the fast path by just setting the live bit. When you attach a property to the PerlInt, it get's "upgraded" to a "fat" PMC with the PMC_EXT structure appended, where the property hash is located. DOD marking goes now through the next_for_GC pointer. The difference is around a factor of 8 for the DOD mark phase and huge amounts of live PMCs. Creating two distinct PMC classes isn't necessary. This would only consume a lot of memory e.g. for the MMD tables. > stef leo