Matt Fowles wrote:

All~

Parrot_do_at_most_N_DOD/GC(1);
do_clone
Parrot_unblock_DOD/GC(-1);

This would allow it to do one DOD run if it realized that it needed it part
way through the clone, but would never do more.

Very interesting approach. Yep. No need to check for probably needed resources. But the problem here is - this works only for the approach "setting the live (or neonate) FLAG for new objects - only one DOD run allowed".

The problem with this approach is, that you have far to many live objects laying around. DOD runs are rare.

I did test it with bench_newp.pasm: loops per second decreased from ~770 to 7, PMC count was 100fold so DOD runs took a long time.

This would work only, in combination with resetting live_FLAG for already anchored objects, which share the problem with other neonate flag approaches: How and when to reset the flag.


Matt
leo

Reply via email to