Я бегло просмотрел статью и местами поправил ужасную орфографию и грубые
стилистические ошибки, но вычитка и выправление форматирования заняли бы
непомерное время (Мир переполнен идиотами, не знающих простейших правил
родного языка и обожающих выравнивание по правому краю).
Несмотря на название, в статье очень мало об Ассемблере и много - об
оптимизации. Рекомендуется к прочтению.
Дункан, Рэй ! Оптимизация программ на ассемблере (19,669)
P.S.
Музыкой навеяло...
Рэй пишет:
> Стоит еще раз повторить мудрое изречение доктора Кнута: "Многие беды
> программирования проистекают от преждевременной оптимизации".
В околокомпьютерных кругах, среди людей, считающих, что они причастны к
программированию (типа администраторов сайтов и прочих менеджеров), это
выражение достаточно популярно.
Вспоминаю бывшего своего шефа - тоже любил цитировать. Не знаю где он его
подхватил (Кнута вряд ли читал, скорее всего у повторившего его Мейерса).
На самом деле, нужно уже быть профи, чтобы уловить тонкую грань этой
преждевременности.
Представьте, заказали вам небольшой пассажирский самолет. ТЗ, разумеется,
подписывал босс и другие важные люди, вас не приглашали.
Перечитав трижды и обведя маркером парочку заведомо невыполнимых пунктов,
помолясь и составив завещание, вы взялись за дело и явились к боссу с
проектом.
- Так, обтекатели из стеклопластика - это еще на фига? У меня шурин на
металлке работает, закажем там из стали 3.
- Дюралевый корпус? Для облегчения? Опять ты со своей оптимизацией... С
чего ты решил, что нужен непременно дюраль? Первую версию сделаем из
чугуна. Когда полетит, тогда и решим, стоит ли ее оптимизировать.
- Салон на 72 пассажира? Ты совсем охренел? А почему не 92? Почему не
122? Откуда вдруг эти хардкодные ограничения? Читаем ТЗ, пункт 628.5.3:
"Пассажирский салон переменной вместимости, растягивающийся по
необходимости". Понятно? "Рас-тя-гивающийся". "По необходимости".
Ты динамический салон от статического отличаешь? Или выгнать тебя на хрен
"по несоответствию"?
- Шасси... пневматика от... Парень, с тобой не соскучишься. Компоненты
от третьих фирм у нас в смете не заложены. Мне тут как-то зять колеса от
"Беларуси" подарил - списал трактор в металлолом, - вот их и поставим на
альфу. Резина, правда, "лысая", но к бете апгрейд сделаем - купим новые
шины. Опять же, импорт. Заказчик счастлив будет, что не китайские.
Я думаю, можно не продолжать. Зато все эти компоненты эффективного
менеджмента: ржавый обтекатель, чугунный корпус, колеса от трактора... красиво
оформлены UML-диаграммами, что, разумеется, гарантирует их идеологическую
непогрешимость, объектную ориентированность и грядущий успех выполняемой
разработки.
И когда случается так, что безукоризненно вычерченный в UML, чугунный самолет
почему-то не взлетает, виноват, разумеется, исполнитель-программист с его
"преждевременной оптимизацией" и стеклопластиковым блистером.
|