Ordonnancement de mémoire de pointe

HotPDF admet les opérations concurrentes à forte empreinte via un budget d'octets à l'échelle du processus avant qu'elles n'allouent leurs principaux espaces de travail

Opérations couvertes

Chaque opération réserve une estimation prudente dérivée de sa taille source, de ses dimensions de rendu, de sa DPI, de son seuil de flux et de son nombre de travailleurs, puis libère la réservation à la frontière de télémétrie d'opération existante

Politique d'admission

Le chemin sans contention n'alloue aucun événement d'attente, tandis que les opérations en contention utilisent un événement privé et ne tournent pas

Configuration

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 est par composant et peut contourner l'admission pour du travail fiable et isolé, tandis que PeakMemorySchedulerBudgetBytes configure l'ordonnanceur partagé à l'échelle du processus

Statistiques

THPDFPeakMemorySchedulerStatistics signale les octets réservés courants et de pointe, les réservations actives courantes et de pointe, les personnes en attente courantes et de pointe, les admissions totales et retardées, les admissions surdimensionnées, les annulations et le temps d'attente agrégé

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds et MemorySchedulerDelayed attribuent le coût d'ordonnancement à l'opération la plus récente

API associées