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