Peak Memory Scheduling
HotPDF prima konkurentne operacije velikog otiska kroz jedan proračun bajtova za cijeli proces prije nego što alociraju svoje glavne radne skupove
Pokrivene operacije
- Učitavanje dokumenta
- Sinkrono, predmemorirano i progresivno iscrtavanje stranica
- Paralelno renderiranje stranica, pločica i traka
- Selektivna optimizacija tokova
- Ograničena paralelna optimizacija slika
Svaka operacija rezervira konzervativnu procjenu izvedenu iz veličine izvora, dimenzija renderiranja, DPI, praga toka i broja radnika, a zatim otpušta rezervaciju na postojećoj granici telemetrije operacije
Pravila prijema
- Zadani proračun u opsegu procesa je
536870912bajtova - Vrijednost
0onemogućuje ograničavanje proračuna - Čekatelji se primaju u FIFO redoslijedu tako da kasniji mali zahtjevi ne mogu izgladovati raniji veliki zahtjev
- Zahtjev veći od konfiguriranog proračuna može se izvršiti samo kada nijedna druga rezervacija nije aktivna
- Povećanje proračuna može odmah primiti red čekanja, dok ga smanjenje nikad ne prekida aktivni rad
- Čekanja u redu anketiraju token otkazivanja operacije u ograničenim razmacima od 50 ms
Put bez natjecanja ne alocira događaj čekanja, dok natjecateljske operacije koriste jedan privatni događaj i ne vrte se u petlji
Konfiguracija
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 po komponenti i može zaobići prijem za pouzdan izolirani rad, dok PeakMemorySchedulerBudgetBytes konfigurira zajednički dispečer za cijeli proces
Statistika
THPDFPeakMemorySchedulerStatistics izvještava o trenutnim i vršnim rezerviranim bajtovima, trenutnim i vršnim aktivnim rezervacijama, trenutnim i vršnim čekateljima, ukupnim i odgođenim prijemima, prevelikim prijemima, otkazivanjima i zbirnom vremenu čekanja
THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds i MemorySchedulerDelayed pripisuju trošak raspoređivanja najnovijoj operaciji