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

Reply via email to