การจัดตารางหน่วยความจำช่วงพีค

HotPDF รับ operation ที่กินพื้นที่สูงที่แย่งกันเข้ามาผ่านงบประมาณไบต์ระดับ process ชุดเดียว ก่อนที่พวกมันจะจอง working set หลัก

การดำเนินการที่ครอบคลุม

operation แต่ละตัวจองค่าประมาณแบบอนุรักษ์นิยม ที่ derive จากขนาด source, มิติการเรนเดอร์, DPI, threshold ของ stream กับจำนวน worker แล้วปล่อย reservation ที่ขอบเขต telemetry ของ operation เดิม

นโยบายการรับเข้า

เส้นทางที่ไม่มีใครแย่งไม่จอง wait event ขณะที่ operation ที่มีการแย่งใช้ event ส่วนตัวหนึ่งตัวและไม่หมุนรอแบบ spin

การตั้งค่า

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 ตั้งต่อ component และยืมการรับเข้าสำหรับงานที่แยกและเชื่อถือได้ได้ ขณะที่ PeakMemorySchedulerBudgetBytes ตั้งงบประมาณ scheduler ระดับ process ที่แชร์กัน

สถิติ

THPDFPeakMemorySchedulerStatistics รายงานไบต์ที่จองไว้ปัจจุบันกับสูงสุด, reservation ที่ active ปัจจุบันกับสูงสุด, waiter ปัจจุบันกับสูงสุด, การรับเข้าทั้งหมดกับที่ถูกเลื่อน, การรับเข้าที่เกินขนาด, การยกเลิก และเวลารอรวม

THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds กับ MemorySchedulerDelayed ผูกต้นทุนการจัดคิวกับ operation ล่าสุด

API ที่เกี่ยวข้อง