Peak Memory Scheduling
Aplikace HotPDF připouští soupeřící operace s velkým dopadem na paměť prostřednictvím jednoho celoprocesového rozpočtu bajtů dříve, než alokují své hlavní pracovní sady
Covered operations
- Načítání dokumentu
- Synchromní, cacheované a progresivní vykreslování stránek
- Paralelní vykreslování stránek, dlaždic a pásů
- Selektivní optimalizace streamů
- Omezená paralelní optimalizace obrazu
Každá operace rezervuje konzervativní odhad odvozený z velikosti zdroje, rozměrů vykreslení, DPI, prahu streamu a počtu pracovníků a rezervaci uvolní na stávající hranici telemetrie operace
Admission policy
- Výchozí celoprocesový rozpočet je
536870912bajtů - Hodnota
0zakáže omezení rozpočtu - Čekající jsou připouštěni v pořadí FIFO, takže pozdější malé požadavky nemohou uspíšit dřívější velký požadavek
- Požadavek větší než nakonfigurovaný rozpočet může běžet pouze tehdy, když není aktivní žádná jiná rezervace
- Zvýšení rozpočtu může okamžitě připustit zařazenou práci, zatímco jeho snížení nikdy nepřeruší aktivní práci
- Zařazená čekání dotazují token zrušení operace v omezených intervalech 50 ms
Cesta bez soupeření nealokuje žádnou událost čekání, zatímco operace se soupeřením používají jednu soukromou událost a neprovádějí aktivní čekání
Configuration
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 je per-komponentní a může obejít připouštění pro důvěryhodnou izolovanou práci, zatímco PeakMemorySchedulerBudgetBytes konfiguruje sdílený celoprocesový plánovač
Statistics
THPDFPeakMemorySchedulerStatistics hlásí aktuální a špičkové rezervované bajty, aktuální a špičkové aktivní rezervace, aktuální a špičkový počet čekajících, celkový a zpožděný počet připuštění, připuštění nad měřítko, zrušení a celkovou dobu čekání
THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds a MemorySchedulerDelayed přiřazují náklady plánování k nejnovější operaci