Peak Memory Scheduling
HotPDF prijíma konkurenčné operácie s veľkou stopou cez jeden rozpočet bajtov v rámci procesu predtým, než alokujú svoje hlavné pracovné sady
Pokryté operácie
- Načítanie dokumentu
- Načítanie dokumentu
- Synchronné, vyrovnávané a progresívne vykresľovanie stránok
- Selektívna optimalizácia prúdov
- Ohraničená paralelná optimalizácia obrázkov
Každá operácia rezervuje konzervatívny odhad odvodený z veľkosti zdroja, rozmerov vykreslenia, DPI, prahu prúdov a počtu pracovníkov, potom uvoľní rezerváciu na existujúcej hranici telemetrie operácie
Politika prijímania
- Predvolený rozpočet v rámci procesu je
536870912bajtov - Hodnota
0vypína obmedzovanie rozpočtu - Čakajúci sa prijímajú v poradí FIFO, takže neskoršie malé požiadavky nemôžu hladovať skoršiu veľkú požiadavku
- Požiadavka väčšia ako nakonfigurovaný rozpočet môže bežať len vtedy, keď nie je aktívna žiadna iná rezervácia
- Zvýšenie rozpočtu môže prijať zaradené práce okamžite, zatiaľ čo jeho zníženie nikdy nepreruší aktívnu prácu
- Zaradené čakania dotazujú token zrušenia operácie v ohraničených intervaloch 50 ms
Nekonkurenčná cesta nealokuje žiadnu udalosť čakania, zatiaľ čo konkurenčné operácie používajú jednu súkromnú udalosť a nespínajú
Konfigurácia
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 komponent a môže obísť prijímanie pre dôveryhodnú izolovanú prácu, zatiaľ čo PeakMemorySchedulerBudgetBytes konfiguruje zdieľaný plánovač v rámci procesu
Štatistiky
THPDFPeakMemorySchedulerStatistics hlási aktuálne a špičkové rezervované bajty, aktuálne a špičkové aktívne rezervácie, aktuálnych a špičkových čakajúcich, celkové a oneskorené prijatia, nadrozmerné prijatia, zrušenia a agregovaný čas čakania
THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds a MemorySchedulerDelayed pripisujú náklady na plánovanie najnovšej operácii