Schemaläggning vid toppminne
HotPDF antar konkurrerande operationer med hög minnesanvändning genom en processövergripande bytebudget innan de allokerar sina huvudsakliga arbetsset
Täckta operationer
- Dokumentinläsning
- Dokumentinläsning
- Synkron, cachelagrad och progressiv sidrendering
- Selektiv strömoptimering
- Begränsad parallell biloptimering
Varje operation reserverar en konservativ uppskattning härledd från dess källstorlek, rendermått, DPI, strömtröskel och arbetarantal och frigör sedan reservationen vid den befintliga operationstelemetrigränsen
Antagningspolicy
- Standardprocessövergripande budget är
536870912byte - Ett värde på
0inaktiverar budgetbegränsningen - Väntare antas i FIFO-ordning så att senare småförfrågningar inte kan svälta en tidigare stor förfrågan
- En förfrågan större än den konfigurerade budgeten kan endast köras när ingen annan reservation är aktiv
- Att öka budgeten kan anta köat arbete omedelbart, medan en minskning aldrig avbryter aktivt arbete
- Köade väntetider pollar operationens avbrottstoken med begränsade 50 ms-intervall
Den icke-kontenderade sökvägen allokerar inget väntevent, medan kontenderade operationer använder ett privat event och spinner inte
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 är per komponent och kan kringgå antagning för betrodd isolerad arbete, medan PeakMemorySchedulerBudgetBytes konfigurerar den delade processövergripande schemaläggaren
Statistik
THPDFPeakMemorySchedulerStatistics rapporterar aktuella och topp-reserverade byte, aktuella och topp-aktiva reservationer, aktuella och topp-väntare, totala och fördröjda antagningar, översstora antagningar, avbrott och sammanlagd väntetid
THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds och MemorySchedulerDelayed attribuerar schemaläggningskostnad till den senaste operationen