Relojes de plataforma XFA

Unidad: HPDFXFAPlatform

type
  TXFAPlatformTime = record
    EpochMilliseconds: UInt64;
    RandomSeed: Cardinal;
  end;

function HPDFXFAMonotonicMilliseconds: UInt64;
function HPDFXFAHighResolutionFrequency: Int64;
function HPDFXFAHighResolutionTicks: Int64;
function HPDFXFAWallClock: TXFAPlatformTime;

HPDFXFAMonotonicMilliseconds devuelve milisegundos nativos crecientes para presupuestos de tiempo transcurrido; su valor no es un timestamp de calendario

HPDFXFAHighResolutionTicks y HPDFXFAHighResolutionFrequency proporcionan un reloj de intervalos nativo y su frecuencia de ticks por segundo; divida las diferencias de ticks por la frecuencia para obtener segundos transcurridos

Windows usa GetTickCount64 y QueryPerformanceCounter; Linux usa su reloj monotónico nativo con una frecuencia de alta resolución en nanosegundos

HPDFXFAWallClock registra la época Unix UTC actual en milisegundos y un RandomSeed derivado del reloj usado por el journal determinista de eventos; la semilla no es una fuente de aleatoriedad criptográfica

Los valores de wall-clock de Windows vienen de FILETIME y los de Linux de CLOCK_REALTIME; los fallos del reloj nativo lanzan EOSError

El replay de scripts consume los valores de época y semilla grabados en lugar de leer nuevos valores de wall-clock para evaluaciones grabadas previamente