

Optimizing Parrot - stefano
http://wknight8111.blogspot.com/2009/10/optimizing-parrot.html

======
tetha
So now they realized the same thing the linux kernel programmers realized
earlier: building _really_ efficient things requires a more precise stance
towards 'best practice'.

While data encapsulation is neat for datastructures which might be accessed by
fools who might break something, it is a performance killer and utterly
uneccessary if no fool ever touches the datastructure.

While gotos might be old and too powerful for most people, they do have the
ability to reduce code duplication in C and even have use cases where a goto
is simpler than no goto.

~~~
chromatic
That's not the lesson I take away here. Yes, breaking encapsulation is
occasionally necessary. Yes, abstraction sometimes has a performance penalty
(but sometimes it doesn't).

Mostly I've learned that we had a mountain of technical debt we have to remove
before we were in a good position to produce huge optimizations. What Andrew
didn't write is that _despite_ losing some speed with recent changes after
1.4, we've added a lot of optimizations. We'll probably lose a bit of ground
after 1.7, but we're in a much better position to gain it back and more after
1.8.

