Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

Нужнаm

ли оптимизация

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

273Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Поищите аппаратные решения. Добавьте специальный блок для операций с действительными числами, чтобы ускорить вычисле% ния, увеличьте кэш процессора, объем оперативной памяти, по% высьте скорость работы сети или поставьте быстрый контроллер жестких дисков.

Перенастройте целевую платформу, чтобы снизить нагрузку на ЦП. Отключите фоновые задачи или ненужное оборудование. Старай% тесь, чтобы ваши процессы экономно расходовали память.

Выполняйте медленный код асинхронно, в фоновом режиме. До% бавлять новые потоки в последнюю минуту – рискованное занятие, если вы не сильны в этом вопросе, но тщательно разработанные по% токи могут очень неплохо справляться с медленными операциями.

Поработайте с элементами интерфейса пользователя, от которых зависит субъективное восприятие скорости. Пусть кнопки GUI ме% няются мгновенно, даже если код, запускаемый ими, выполняется секунду или более. Для медленных задач сделайте индикаторы про% гресса: программа, которая замирает во время долгой операции, ка% жется зависшей. Визуальное отображение хода операции создает лучшее впечатление качества работы.

Проектируйте системы так, чтобы они не требовали вмешательства оператора, и тогда никто не обратит внимания на скорость выпол% нения. Сделайте программу пакетной обработки с толковым интер% фейсом, который позволит ставить задачи в очередь.

Попробуйте применить другой компилятор с более агрессивной оп% тимизацией либо нацельте свой код на специализированную вер% сию процессора (со всеми дополнительными командами и расшире% ниями), чтобы выжать из него максимальную производительность.

Рассмотрите альтернативы оптимизации; не удастся ли вам повысить эф& фективность программы иными способами?

Нужна ли оптимизация

Уяснив, что с оптимизацией связаны опасности, не выкинуть ли на% всегда из головы идею оптимизировать свой код? Не стоит. Хотя опти% мизации следует по возможности избегать, однако во многих случаях она весьма важна. И есть области, в которых она оказывается просто

необходимой.

Программирование игр всегда требует высокой эффективности кода. Несмотря на огромный прогресс в мощности ПК, рынок требует все более реалистичной графики и эффективных алгоритмов искусст% венного интеллекта. Добиться этого можно только путем предельной эксплуатации всех возможностей исполнительной среды. Это очень

напряженная область деятельности: если появляется новый, более