Szeregowanie pamięci szczytowej

HotPDF dopuszcza konkurujące operacje o dużym śladzie pamięciowym przez jeden procesowy budżet bajtów, zanim zaalokują swoje główne zbiory robocze

Objęte operacje

Każda operacja rezerwuje konserwatywną estymatę wyliczoną z rozmiaru źródła, wymiarów renderowania, DPI, progu strumienia i liczby workerów, a potem zwalnia rezerwację na istniejącej granicy telemetrii operacji

Polityka wstępu

Ścieżka bez konkurencji nie alokuje zdarzenia oczekiwania, a operacje skonfliktowane używają jednego prywatnego zdarzenia i nie wykonują aktywnego czekania (spin)

Konfiguracja

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 dotyczy pojedynczego komponentu i może omijać wstęp dla zaufanej izolowanej pracy, a PeakMemorySchedulerBudgetBytes konfiguruje współdzielony szeregowiec procesowy

Statystyki

THPDFPeakMemorySchedulerStatistics raportuje bieżące i szczytowe zarezerwowane bajty, bieżące i szczytowe aktywne rezerwacje, bieżących i szczytowych oczekujących, wpuszczenia łącznie i opóźnione, wpuszczenia przewymiarowane, anulowania i zagregowany czas oczekiwania

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds i MemorySchedulerDelayed przypisują koszt szeregowania do najnowszej operacji

Powiązane API