netlib.narod.ru< Назад | Оглавление | Далее >

Глава 3
Ничего не предполагайте

Постижение и использование Дзен-таймера

Когда вы погрузитесь в написание оптимизированного кода для PC, то станете слегка одержимы поиском подходов, которые позволят выжать из компьютера еще большую скорость. В процессе вы будете делать ошибки, и это хорошо — пока вы видите эти ошибки и учитесь на них.

Приведу поучительную историю. Несколько лет назад я наткнулся на статью о языке ассемблера процессоров 8088 названную «Оптимизируйте для скорости». Оптимизация — не то слово, которое можно необдкуманно использовать. Девятое издание Нового университетского словаря Вебстера определяет слово «оптимизировать» следующим образом: «делать настолько совершенным, эффективным, функциональным насколько это возможно», что конечно оставляет небольшую лазейку для ошибок. Автор статьи взял небольшую, хорошо описанную процедуру на языке ассемблера процессора 8088, которая состояла примерно из 30 команд и преобразовывала 8-разрядное значение в 16-разрядное дублируя каждый бит, и попытался усовершенствовать ее.

Автор «Оптимизации» тщательно настраивал код, исследуя альтернативные варианты размещения команд и подсчитывая такты процессора, пока не создал вариант, который, по его подсчетам, должен был выполняться на 50 процентов быстрее, чем первоначальная процедура. Короче говоря, он использовал всю имеющуюся у него в наличии информацию, чтобы улучшить код и сэкономил много циклов. Фактически, у оптимизированной версии процедуры была лишь одна небольшая проблема...

Она работала медленнее, чем первоначальная версия!


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz