Sollte in etwa so aussehen:
Delphi-Quellcode:
threadvar
High: UInt64;
LastLow: Cardinal;
function _GetTickCount64: UInt64; inline;
var
Low: Cardinal;
begin
Low := GetTickCount;
if (LastLow > Low) then
begin
High := High + $0000000100000000;
end;
LastLow := Low;
Result := High or Low;
end;
Ist etwas weniger als halb so performant wie die native Funktion, aber immer noch deutlich schneller als mit
QueryPerformanceCounter. Wenn du
garantiert nur einen Thread hast, kannst du das
threadvar
auch durch
var
ersetzen - dann ist die Funktion in etwa gleich schnell wie die native Variante.