Peak Memory Scheduling

O HotPDF admite operações concorrentes de alto consumo por meio de um orçamento de bytes em todo o processo antes que elas aloquem seus principais conjuntos de trabalho

Operações cobertas

Cada operação reserva uma estimativa conservadora derivada do tamanho da origem, das dimensões de renderização, do DPI, do limiar de stream e da contagem de workers, e libera a reserva na fronteira existente de telemetria da operação

Política de admissão

O caminho sem contenção não aloca evento de espera, enquanto operações com contenção usam um evento privado e não giram

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 é por componente e pode ignorar a admissão para trabalho isolado confiável, enquanto PeakMemorySchedulerBudgetBytes configura o scheduler compartilhado no escopo do processo

Statistics

THPDFPeakMemorySchedulerStatistics reporta bytes reservados atuais e de pico, reservas ativas atuais e de pico, esperas atuais e de pico, admissões totais e atrasadas, admissões superdimensionadas, cancelamentos e tempo agregado de espera

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds e MemorySchedulerDelayed atribuem o custo de agendamento à operação mais recente

APIs relacionadas