This week's release of Parrot 1.2 and Rakudo #17 include some measurable performance improvements. We've spent the last couple of weeks profiling and tuning Parrot. In particular, Parrot startup is a third of what it was in Parrot 1.1 (building on the work in Silly Little Parrot Optimizations). Rakudo's parsing speed has improved by at least 40% (though perhaps we've halved the time the average parse takes). Parrot's method dispatching speed has improved by about 10%. Returning from simple functions (that is, creating and invoking a return continuation rather than storing a first-class continuation) is also somewhat faster, but I don't have my notes on exact numbers.
A few other optimizations didn't make it in the release. I've just created a quick patch to reduce the cost of function invocations (perhaps a 30% improvement there), and I'm experimenting with some modest changes to those places where we do need to malloc()
explicitly.
This is minor tuning, based on careful profiling, a few algorithmic improvements, moving runtime calculations to compile time, and an increasing knowledge of hotspots and expensive code. Few of them require non-local design changes to Parrot. We have much more impressive performance improvements in the works.
(This is about Perl programming, not Euphoria programming.)