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
- Document loading
- Chargement de document
- Rendu de page synchrone, en cache et progressif
- Optimisation sélective de flux
- Optimisation d'images parallèle bornée
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 budget processus par défaut est de
536870912octets - Une valeur de
0désactive la limitation de budget - Les personnes en attente sont admises dans l'ordre FIFO afin que les petites demandes ultérieures ne puissent pas affamer une grande demande antérieure
- Une demande plus grande que le budget configuré ne peut s'exécuter que lorsqu'aucune autre réservation n'est active
- Augmenter le budget peut admettre immédiatement le travail en file, tandis que le diminuer n'interrompt jamais le travail actif
- Les attentes en file sondent le jeton d'annulation d'opération à des intervalles bornés de 50 ms
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