inline toch mogelijk maken
Om een main unit te ontdoen van gecompliceerde routines (en een te grote unit file), heb ik deze gecompliceerde routines in een andere unit ondergebracht.
Zie onderstaande structuur.
Nu wordt echter de FastProc - wanneer aangeroepen vanuit de tweede unit in ComplicatedProc - niet inlined aangeroepen.
Dat is per definitie een onmogelijkheid in delphi.
Is er een nette manier toch een inline call voorelkaar te krijgen? Snelheid is in deze van belang.
Code:
// main unit
unit Main;
interface
procedure FastProc; inline;
implementation
uses
Complicated;
procedure FastProc; // inline;
begin
// do something fast
end;
procedure CallHelpUnit;
begin
ComplicatedProc;
end;
end.
// complicated unit
unit Complicated;
interface
uses
Main;
procedure ComplicatedProc;
implementation
procedure ComplicatedProc;
begin
for i := 1 to 100000 do
MyFastProc;
end;
end.