Шаг 53 - Понимание оптимизации по скорости и размеру

Рассмотрев процедуры и макросы мы подошли к понятию оптимизации. Чем же различается использование макросов и процедур. Во-первых, процедуру нужно вызвать. Делает это команда CALL.

53_1.gif (853 b)

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

53_2.gif (3021 b)

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

53_3.gif (3001 b)

Соответственно код с использованием макросов будет больше за счет включения повторяющихся частей. Получается, что, если в лоб, то у нас есть два метода оптимизации по скорости и размеру. В реальности это не самый лучший выбор, например, огромная процедура, которая вызывается всего 5 раз наверно очень сильно влияет на размер и мало на скорость, и наоборот мелкая процедура вызываемая 100000 раз в цикле может очень сильно повлиять на время и мало на размер. Развитые средства программирования имеют уже встроенные оптимизаторы, но принципиальные идеи точно такие.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 18.01.2002