Home

Page 39
Page 39
background image

32 Глава 1

ЗАКОН № 3

Следующим шагом вы должны разобрать все операции по косточкам и выяс-

нить, где происходят регулярно повторяющиеся операции. Начинать оптимиза-
цию нужно именно с них.

Опять начнем рассмотрение этого закона с программирования. Допустим,

что у вас есть следующий код (приведена просто логика, а не реальная
программа):

1.

2.

3.

4.

5. Если Б<100 то перейти на шаг 3.

Любой программист скажет, что здесь слабым местом является первая стро-

ка, потому что там используется умножение. Это действительно так. Умно-

жение всегда выполняется дольше, и если заменить его на сложение

 ИЛИ

 еще лучше на сдвиг, то вы выиграете пару тактов процессорного

времени. Но только пару тактов, и для процессора это будет незаметно.

Теперь посмотри еще раз на наш код. Больше ничего не видишь? А я вижу.

В этом коде используется цикл: "Пока

 будет выполняться операция

 Это значит, что процессору придется выполнить 100 переходов

с шага 5 на шаг 3. А это уже немало. Как можно здесь что-то оптимизиро-

вать? Очень легко. Здесь у нас внутри цикла выполняется две строки: 3 и 4.

А что, если мы внутри цикла размножим их 2 раза:

1.

2.

3.

4.

5.

6. Если Б<50 то перейти на шаг 3;

Здесь я разложил цикл на более маленький. Вторую и третью операцию

я повторил два раза. Это значит, что за один проход цикла я выполню два
раза строки 3 и 4, и только после этого перейду на строку 3, чтобы повто-
рить операцию. Такой цикл уже нужно повторить только 50 раз (потому что
за один раз выполняется два действия). Это значит, что я сэкономил 50 опе-
раций переходов. Неплохо? А это уже несколько сотен тактов процессор-
ного времени.


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.