Главная » Delphi » Delphi 2006 – Новые возможности вызова подпрограмм

0

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

Отметим, что выигрыш от встраиваемых подпрограмм выше при использовании ^^ компилятора .NET и при описании в качестве встраиваемых функций с большим количеством параметров. А маленькие функции, описанные как inline, могут общую производительность и понизить.

Чтобы объявить некоторую процедуру встраиваемой (inline), надо после ее определения поставить ключевое слово inline:

function Add2(x, у: Integer): Integer; inline; begin

Result := x + y; end;

С методами классов директива inline не работает.

Компилятору можно подсказать с помощью инструкции { inline auto} , что весь последующий код он может обрабатывать, самостоятельно решая, какие подпрограммы использовать как встроенные. Также можно явно побудить

компилятор постараться сделать все без исключения подпрограммы встраиваемыми директивой { inline on}. Отключается такой режим директивой {inline off}.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии