Ответ 1
Я оставлю преждевременную оптимизацию.
"Преждевременная оптимизация - корень всего зла" - Дональд Кнут
В первую очередь следует обратиться за ремонтопригодностью. Группируйте их так, чтобы было более разумно учитывать логическую структуру кода (например, группировать связанные операторы вместе).
Если вы позже определите, что производительность является проблемой, попробуйте измерить что-то вроде профилировщика, чтобы увидеть, где узкие места. Скорее всего, это не так. Из кода Complete 2:
Барри Бем сообщает, что 20% программные процедуры потребляют 80 процентов от времени его выполнения. В его классическая статья "Эмпирическое исследование Фортран", - заявил Дональд Кнут что менее четырех процентов программа обычно составляет больше, чем 50% времени выполнения.
Мы не должны пытаться угадать, где оптимизировать, прежде чем это необходимо, поскольку большинство из нас действительно плохо угадывает, где эта медленная часть нашего кода. Программисты, которые оптимизируют свою работу, также тратят около 96% своего времени на оптимизацию кода, который не нуждается в оптимизации. Еще одна вещь, которую следует учитывать, заключается в том, что настройка кода (как в этом примере) рассматривает компромисс между читабельностью и ремонтопригодностью для производительности:
Ориентация на оптимизацию во время начальное развитие отвлекает достижения других программных целей. Разработчики погружаются в анализ алгоритмов и тайные дебаты что в конечном итоге не вносит большой вклад значение для пользователя. Проблемы, такие как правильность, скрытие информации и читаемость становится вторичными целями, хотя производительность лучше, чем эти другие опасения. Пост-производительность работа обычно затрагивает менее пяти процентов от программного кода. Не могли бы вы скорее вернитесь и выполните работу по работе на пять процентов кода или читаемость на 100 процентов?
Я не говорю, что не оптимизируйте, но оптимизируйте код только в конце, когда у вас есть роскошь большой картинки и инструменты, чтобы указать вам в правильном направлении.
EXTRA: Чтобы ответить на вопрос о самой производительности:
Этот [ "unswitching" код] хорош примерно на 20 процентов экономии времени:
Language Straight Time Code-Tuned Time Time Savings
C++ 2.81 2.27 19%
Java 3.97 3.12 21%
Visual Basic 2.78 2.77 <1%
Python 8.14 5.87 28%
Опасность, отличная от этого случая, состоит в том, что две петли должны поддерживаться параллельно. [...] вы должны помнить об изменении кода в обоих местах, что раздражает вы и головная боль обслуживания для всех, кто должен работать с кодом.
Этот пример также иллюстрирует ключевую проблему в настройке кода: влияние любого конкретного настройка кода не предсказуема. Настройка кода привела к существенным улучшениям в три из четырех языков, но не в Visual Basic. Чтобы выполнить эту конкретную оптимизация в этой конкретной версии Visual Basic приведет к сокращению количества поддерживаемых кода без какого-либо компенсирующего усиления в производительности. Общий урок состоит в том, что вы должны измерять эффект каждой конкретной оптимизации, чтобы быть уверенным в ее влиянии - нет исключения.
Проверьте этот другой вопрос здесь. И this из первого выпуска кода Complete.