ピークメモリスケジューリング

HotPDF は、競合する高フットプリント操作が主な作業セットを割り当てる前に、1 つのプロセス全体のバイト予算を通じてそれらを受け入れます

対象操作

各操作は、ソースサイズ・レンダリング寸法・DPI・ストリームしきい値・ワーカー数から導いた保守的な見積もりを予約し、既存の操作テレメトリ境界でその予約を解放します

受付ポリシー

無競合パスは待機イベントを割り当てませんが、競合する操作は 1 つのプライベートイベントを使用し、スピンしません

設定

PDF.PeakMemorySchedulerEnabled := True;
PDF.PeakMemorySchedulerBudgetBytes := 768 * 1024 * 1024;

PDF.ResetPeakMemorySchedulerStatistics;
if PDF.GetPeakMemorySchedulerStatistics(Stats) then
begin
  WriteLn(Stats.PeakReservedBytes);
  WriteLn(Stats.DelayedAdmissionCount);
  WriteLn(Stats.TotalWaitMilliseconds);
end;

PeakMemorySchedulerEnabled はコンポーネント単位であり、信頼された分離作業の受付をバイパスできます。PeakMemorySchedulerBudgetBytes は共有プロセス全体のスケジューラーを設定します

統計

THPDFPeakMemorySchedulerStatistics は、現在とピークの予約バイト、現在とピークのアクティブ予約、現在とピークの待機者、合計と遅延受付、特大受付、キャンセル、合計待機時間を報告します

THPDFOperationTelemetry.ScheduledMemoryBytes、MemorySchedulerWaitMilliseconds、MemorySchedulerDelayed は、スケジューリングコストを最新の操作に帰属させます

関連 API