0. Does it work?
My take on "premature optimization is the root of all evil" is simple: first, make sure everything works correctly (e.g. passes all tests).
Then, and only then, should you look at the remainder of that list.
Also, between 3 and 4, a good question is "will any fix make it fast enough to be worth my time to implement?"
Ramblings and references
The Code that can be seen is not the true Code
I haven't found a problem yet that can't be solved by a well-placed trebuchet