"Преждевременная оптимизация -- корень всех зол". Ну если не всех, то как минимум половины. Вопрос в чем -- что нужно, чтобы эту самую преждевременную оптимизацию не делать?
Заметил -- по мере того, как растет опыт в области оптимизации, как обрастаешь всякими фишками и фишечками на тему "как тут и там немного выиграть в скорости и памяти" начинает возникать все большее искушение вставлять эти фишечки где только можно. В итоге джава, которую я люблю именно за то, что провоцирует писать понятно, превращается в С.
Спросил себя -- что нужно, чтобы искушение оптимизировать все и вся не возникало? Да все просто -- нужна уверенность, что когда проблемы с производительностью возникнут, можно будет четко сказать где. Другими словами -- если я знаю, что у меня есть инструментарий, позволяющий быстро и точно локализовать узкие места -- я буду писать красивый и понятный код. Если я знаю, что профайлер мы уже 3 года как не можем купить -- я оптимизирую все, что можно, на всякий случай.