Hey Peter,

Sorry about not replying to your ealier message...I completely forgot
until I saw this message. :)

> Thanks Mike, those changes do indeed help. Current numbers on my system for
> 5000 generations of life with various versions of Parrot (using CVS tags)
> are:
> 0.0.5      47.99 generations per second
> 0.0.6      57.41
> 0.0.7      20.18
> current   21.18 (an improvement of 4.7% over 0.0.7)

These do look pretty bad. Unfortunately, these numbers are not directly
comparable. Between 0.0.6 and 0.0.7, two major things changed in the GC
code:
- addition of stack-walk code to avoid child collection
- the GC refactoring I commited

I suspect the former is what is causing your speed hit, although I'm not
ruling out the possibility that my changes caused a problem as well. Can
you disable the trace_system_stack call and re-run these numbers?

I know that there are faster solutions to the problem of child collection,
but Dan doesn't want to use them due to the problems that occur when we
start using exceptions (and longjmp, etc). Perhaps, if the above
performance hit is due to trace_system_stack, it might give reason to
reconsider the chosen solution?

Thanks,
Mike Lambert

Reply via email to