Pre-optimization is one of the biggest problems with today's programmers.
First priority should always be releasing the software.
Let it break. Make optimizations when and where necessary.
No one can look into the future.
No one can look into the future.
It is the numerous scores of small hacks that bogs down programmers nowadays.
Analyze traffic/usage of parts of the application - mark areas which are used most - analyze performance - optimize if not up to mark.
If stress is always on elegant code - it'll always end up taking more time. In real-life scenario, no module is ever "bug-free". The cases change from day to day. When you're absolutely sure that the functionality is exactly what is required - then you should spend time optimizing it.