XFA プラットフォームクロック

ユニット: HPDFXFAPlatform

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

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

HPDFXFAMonotonicMilliseconds は経過時間バジェット用に単調増加するネイティブミリ秒を返します。この値は暦タイムスタンプではありません

HPDFXFAHighResolutionTicks と HPDFXFAHighResolutionFrequency は、ネイティブの区間クロックとその毎秒ティック数を提供します。経過秒はティック差を周波数で割って求めます

Windows は GetTickCount64 と QueryPerformanceCounter を使います。Linux はナノ秒の高分解能周波数を持つネイティブ モノトニッククロックを使います

HPDFXFAWallClock は、ミリ秒単位の現在の UTC Unix エポックと、決定論的イベントジャーナルが使うクロック由来の RandomSeed を記録します。シードは暗号学的な乱数源ではありません

Windows の実時間値は FILETIME から、Linux の値は CLOCK_REALTIME から得られます。ネイティブクロックの失敗は EOSError を発生させます

スクリプトリプレイは、記録済み評価に対して新しい実時間値を読む代わりに、記録されたエポックとシード値を消費します