netlib.narod.ru | < Назад | Оглавление | Далее > |
Что мы узнали? Не позволяйте коду, написанному другими людьми, — даже DOS, — делать за вас работу, скорость выполнения которой важна, по крайней мере, если вы точно не знаете что именно делаает код и насколько хорошо.
Оптимизация имеет значение только после того, как вы выполнили всю работу, относящуюся к проекту программы. Рассмотрите отношения в последнем столбце таблицы 1.1, показывающие, что оптимизация приложения, вычисляющего контрольную сумму, без эффективного проекта оказалась практически бесполезной. Оптимизация не является панацеей. Таблица 1.1 показывает двухкратный выигрыш от оптимизации и более чем 50-кратный выигрыш от изменения проекта программы. В свете этих данных продолжительные дебаты о том, какой компилятор С лучше оптимизирует код, уже не выглядят столь важными, разве не так? Ваши органические оптимизаторы значат гораздо больше, чем оптимизатор вашего компилятора, а место для ассемблера находится в тех, обычно небольших, участках кода, где быстродействие действительно имеет значение.
В этой главе был представлен краткий поэтапный обзор процесса разработки. Я не утверждаю, что это единственный способ создания быстродействующего кода; это только подход, который работает для меня. Вы можете создавать код как хотите, но никогда не забывайте, что проект имеет гораздо большее значение, чем детальная оптимизация. Никогда не прекращайте поиск различных изобретательных способов повысить быстродействие — и никогда не тратьте время впустую, пытаясь ускорить код, который ускорять не надо.
С этого момента я собираюсь сосредоточиться на конкретных способах создания быстродействующего кода. В главе 5 мы продолжим рассмотрение повторно запускаемых блоков и внутренней буферизации в программе, которая ищет текстовые строки в файле.
netlib.narod.ru | < Назад | Оглавление | Далее > |