在Delphi中,您可以通过传递参数来加速代码const,例如
function A(const AStr: string): integer;
//or
function B(AStr: string): integer;
Run Code Online (Sandbox Code Playgroud)
假设两个函数内部具有相同的代码,它们之间的速度差异可以忽略不计,我怀疑它甚至可以用循环计数器测量,如:
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;
Run Code Online (Sandbox Code Playgroud)
其原因是const函数A 中的所有操作都是为了防止引用计数AStr增加.
但是增量只需要我的多核CPU的一个核心的一个周期,所以......
我为什么要打扰const?
[dcc32提示] H2443内联函数'RenameFile'尚未展开,因为在USES列表中未指定单位'Winapi.Windows'
我知道内联函数可以使代码更快.但我只看到了紧张的地方.例如,在一个大循环中调用一个小函数.
但如何内联IO功能可以提高速度?我的意思是通过内联RenameFile你可以获得几微秒.但是如果磁盘忙,执行函数本身可能需要几毫秒,甚至几十毫秒.
更重要的是,如果您使用的是RenameFile,那么您可能正处于执行其他I/O操作的代码块中.因此,这段代码将花费大量时间.所以,现在的收益更加微不足道.