Peak Memory Scheduling
HotPDF praleidžia varžančias dideles atmintį naudojančias operacijas per vieną viso proceso baitų biudžetą, prieš joms išskiriant pagrindinius darbinius rėžius
Apimamos operacijos
- Dokumento įkėlimas
- Sinchroninis, podėliuotas ir žingsninis puslapių atvaizdavimas
- Lygiagretus puslapių, plytelių ir juostų atvaizdavimas
- Atrankinė srautų optimizacija
- Apribota lygiagreti vaizdų optimizacija
Kiekviena operacija rezervuoja konservatyvų įvertinimą, išvestą iš jos šaltinio dydžio, atvaizdavimo matmenų, DPI, srauto slenksčio ir darbuotojų skaičiaus, o rezervavimą atlaisvina ten, kur yra esamoji operacijos telemetrijos riba
Priėmimo politika
- Numatytasis viso proceso biudžetas yra
536870912baitų 0reikšmė išjungia biudžeto ribojimą- Laukiantieji priimami FIFO tvarka, todėl vėlesnės mažos užklausos negali išbadinti ankstesnės didelės užklausos
- Užklausą, didesnę už nustatytąjį biudžetą, galima vykdyti tik tada, kai nėra kitų aktyvių rezervavimų
- Padidinus biudžetą, eilėje laukiantis darbas gali būti priimamas nedelsiant, o jo mažinimas niekada nenutraukia aktyvaus darbo
- Eilėje laukiančiosios operacijos atšaukimo žetoną apklausia apribotais 50 ms intervalais
Nekonkuruojantis kelias laukiamojo įvykio nesikuria, o konkuruojančios operacijos naudoja vieną privatų įvykį ir nesukasi
Konfigūracija
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 veikia atskirai kiekvienam komponentui ir patikriam izoliuotam darbui gali praleisti priėmimą, o PeakMemorySchedulerBudgetBytes konfigūruoja bendrąjį viso proceso planuotoją
Statistika
THPDFPeakMemorySchedulerStatistics praneša dabartinius ir didžiausius rezervuotus baitus, dabartinius ir didžiausius aktyvius rezervavimus, dabartinius ir didžiausius laukiančiuosius, visus ir atidėtus priėmimus, viršijusius dydį priėmimus, atšaukimus ir bendrąjį laukimo laiką
THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds ir MemorySchedulerDelayed planavimo kainą priskiria paskiausiai operacijai