@damiandixon:At the risk of channeling Raymond Chen for a moment, the single best way of improving the performance of your code is to do less stuff. You mention things like having 1000s of bits of text on screen, but unless you're running at some extremely high resolution the chances are a lot of that can't be readable, so there isn't any point spending time on it. Intelligently decide what to render can have enormous performance benefits to any application.