Действительно ли преждевременная оптимизация — корень всех зол?

Действительно ли преждевременная оптимизация — корень всех зол?
Действительно ли преждевременная оптимизация — корень всех зол? - kmile_ch @ Unsplash

Важно помнить полную цитату (см. ниже):

Мы должны забыть о малой эффективности, скажем, примерно в 97% случаев: преждевременная оптимизация — корень всех зол.

Тем не менее, мы не должны упускать наши возможности в отношении этих критических 3%.

Это означает, что при отсутствии измеренных проблем с производительностью вам не следует оптимизировать, потому что вы думаете, что получите прирост производительности. Существуют очевидные оптимизации (например, отказ от конкатенации строк внутри узкого цикла), но всего, что не является тривиально очевидной оптимизацией, следует избегать до тех пор, пока ее нельзя будет измерить.

Самые большие проблемы с «преждевременной оптимизацией» заключаются в том, что она может привести к неожиданным ошибкам и может быть огромной тратой времени.


Нет сомнения, что Грааль эффективности приводит к злоупотреблениям. Программисты тратят огромное количество времени, думая или беспокоясь о скорости некритических частей своих программ, и эти попытки повысить эффективность на самом деле имеют сильное негативное влияние, когда речь идет об отладке и обслуживании. Мы должны забыть о малой эффективности, скажем, примерно в 97% случаев: преждевременная оптимизация — корень всех зол.

Тем не менее, мы не должны упускать наши возможности в отношении этих критических 3%. Хорошего программиста такие рассуждения не убаюкают, ему будет мудро внимательно посмотреть на критический код; но только после того, как этот код был идентифицирован. Часто бывает ошибкой делать априорные суждения о том, какие части программы действительно важны, поскольку универсальный опыт программистов, использующих инструменты измерения, показывает, что их интуитивные догадки не срабатывают. Поработав с такими инструментами в течение семи лет, я пришел к убеждению, что все компиляторы, написанные с этого момента, должны быть разработаны таким образом, чтобы предоставить всем программистам обратную связь с указанием того, какие части их программ стоят больше всего; действительно, эта обратная связь должна предоставляться автоматически, если она не была специально отключена.

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - Андрей Карпов — Преждевременная оптимизация — зло! Да здравствует преждевременная оптимизация!

Прикрепленное видео 2 - Что такое преждевременная оптимизация? Почему это плохо?


LetsCodeIt, 17 мая 2023 г., 17:56

Похожие посты