Planificación de memoria máxima

HotPDF admite operaciones competidoras de gran huella a través de un único presupuesto de bytes en todo el proceso antes de que asignen sus principales conjuntos de trabajo

Operaciones cubiertas

Cada operación reserva una estimación conservadora derivada de su tamaño de origen, dimensiones de render, DPI, umbral de stream y recuento de workers, y después libera la reserva en el límite de telemetría de operación existente

Política de admisión

La ruta sin contención no asigna ningún evento de espera, mientras que las operaciones con contención usan un único evento privado y no giran

Configuración

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 es por componente y puede omitir la admisión para trabajo aislado de confianza, mientras que PeakMemorySchedulerBudgetBytes configura el planificador compartido en todo el proceso

Estadísticas

THPDFPeakMemorySchedulerStatistics informa de los bytes reservados actuales y máximos, las reservas activas actuales y máximas, los solicitantes en espera actuales y máximos, las admisiones totales y diferidas, las admisiones de gran tamaño, las cancelaciones y el tiempo de espera agregado

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds y MemorySchedulerDelayed atribuyen el coste de planificación a la operación más reciente

APIs relacionadas