В Delphi вы можете ускорить свой код, передав параметры как const
, например.
function A(const AStr: string): integer;
//or
function B(AStr: string): integer;
Предположим, что обе функции имеют один и тот же код внутри, разница в скорости между ними незначительна, и я сомневаюсь, что ее можно даже измерить с помощью счетчика циклов, например:
function RDTSC: comp;
var
TimeStamp: record case byte of
1: (Whole: comp);
2: (Lo, Hi: Longint);
end;
begin
asm
db $0F; db $31;
mov [TimeStamp.Lo], eax
mov [TimeStamp.Hi], edx
end;
Result := TimeStamp.Whole;
end;
Причиной этого является то, что все const
выполняет в функции A, чтобы предотвратить увеличение счетчика ссылок AStr
.
Но приращение занимает всего один цикл одного ядра моего многоядерного процессора, поэтому...
Зачем мне беспокоиться const
?