Planung des Spitzenarbeitsspeichers

HotPDF lässt konkurrierende Operationen mit hohem Speicherbedarf über ein prozessweites Bytebudget zu, bevor sie ihre wichtigsten Arbeitsspeicherbereiche allokieren

Abgedeckte Vorgänge

Jede Operation reserviert eine konservative Schätzung aus Quellgröße, Renderabmessungen, DPI, Streamschwelle und Workeranzahl und gibt die Reservierung an der bestehenden Telemetriegrenze der Operation frei

Aufnahmeregeln

Der unbestrittene Pfad allokiert kein Warteereignis, während umkämpfte Operationen ein privates Ereignis verwenden und nicht aktiv warten

Konfiguration

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 ist pro Komponente und kann die Zulassung für vertrauenswürdige isolierte Arbeit umgehen, während PeakMemorySchedulerBudgetBytes den gemeinsamen prozessweiten Planer konfiguriert

Statistiken

THPDFPeakMemorySchedulerStatistics meldet aktuelle und höchste reservierte Bytes, aktuelle und höchste aktive Reservierungen, aktuelle und höchste Wartende, gesamte und verzögerte Zulassungen, übergroße Zulassungen, Abbrüche und die aggregierte Wartezeit

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds und MemorySchedulerDelayed ordnen die Planungskosten der jüngsten Operation zu

Verwandte APIs