Peak Memory Scheduling

HotPDF는 경쟁하는 대형 footprint operation을 하나의 프로세스 전역 바이트 예산으로 주 working set 할당 전에 승인합니다

Covered operations

각 operation은 소스 크기, 렌더 차원, DPI, stream threshold, 워커 수에서 도출한 보수적 추정치를 예약하고, 기존 operation 텔레메트리 경계에서 예약을 해제합니다

Admission policy

경합 없는 경로는 wait 이벤트를 할당하지 않고, 경합한 operation은 전용 이벤트 하나를 쓰며 스핀하지 않습니다

구성

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는 컴포넌트별이며 신뢰된 격리 작업은 승인을 우회할 수 있고, PeakMemorySchedulerBudgetBytes는 공유 프로세스 전역 스케줄러를 설정합니다

통계

THPDFPeakMemorySchedulerStatistics는 현재/피크 예약 바이트, 현재/피크 활성 예약, 현재/피크 대기자, 총/지연 승인, 초대 승인, 취소, 누적 대기 시간을 보고합니다

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds, MemorySchedulerDelayed는 스케줄링 비용을 가장 최근 operation에 귀속합니다

관련 API