Я знаю только один способ ответить на этот вопрос - получить опыт в настройке производительности. Это значит - писать программы, и после того, как они будут написаны, найти ускорения в них, и делать это итеративно. Вот один пример.
Вот ошибка, которую совершают большинство людей: они пытаются оптимизировать программу перед тем, как ее запустить. Если они прошли курс программирования (у профессора, который на самом деле не имеет большого практического опыта), у них будут большие цветные очки, и они подумают, что это все . Это все та же проблема, предварительная оптимизация. **
Кто-то сказал: сначала сделай это правильно, а потом сделай это быстро. Они были правы.
Но теперь для кикера: если вы сделали это несколько раз, вы узнаете глупые вещи, которые вы делали ранее, которые вызывают проблемы со скоростью, поэтому вы инстинктивно избегаете их. (Такие вещи, как создание слишком тяжелой структуры вашего класса, заваление уведомлениями, смешение размера вызовов функций с их стоимостью времени, список можно продолжать и продолжать ...) Вы инстинктивно избегаете этого, но догадаетесь, как это выглядит для менее опытный: преждевременная оптимизация!
Так что эти глупые дебаты продолжаются и продолжаются :)
** Еще одна вещь, которую они говорят, это то, что вам больше не нужно об этом беспокоиться, потому что компиляторы такие хорошие, а машины такие быстрые в наше время. (KIWI - Kill It With Iron.) Не существует экспоненциального аппаратного или системного ускорения (выполненного очень умными трудолюбивыми инженерами), которое могло бы компенсировать экспоненциальное замедление программного обеспечения (созданное программистами, которые так думают).