Peak Memory Scheduling
HotPDF عملیاتهای رقیبِ پرمصرف را پیش از تخصیص مجموعههای کاری اصلی، از طریق یک بودجهٔ بایتی سراسری فرآیند میپذیرد
عملیاتهای پوششدادهشده
- بارگذاری سند
- رندر صفحهٔ همگام، ذخیرهشده و تدریجی
- رندر موازی صفحه، کاشی و نوار
- بهینهسازی گزینشی جریان
- بهینهسازی موازی محدودشدهٔ تصویر
هر عملیات تخمین محافظهکارانهای مشتق از اندازه مبدأ، ابعاد رندر، DPI، آستانه جریان و شمار کارگر رزرو میکند و سپس رزرو را در مرز تلهمتری موجود عملیات آزاد میکند
سیاست پذیرش
- بودجه پیشفرض سراسری فرآیند
536870912بایت است - مقدار
0کرانگذاری بودجه را غیرفعال میکند - منتظران به ترتیب FIFO پذیرفته میشوند تا درخواستهای کوچک بعدی نتوانند درخواست بزرگ قبلی را گرسنه کنند
- درخواستی بزرگتر از بودجه پیکربندیشده فقط وقتی میتواند اجرا شود که هیچ رزرو فعالی نباشد
- افزایش بودجه میتواند کار صفشده را فوراً بپذیرد، در حالی که کاهش آن هرگز کار فعال را قطع نمیکند
- انتظارهای صفشده توکن لغو عملیات را در فواصل محدودشدهٔ 50 میلیثانیهای poll میکنند
مسیر بدون رقابت هیچ رخداد انتظار تخصیص نمیدهد، در حالی که عملیاتهای رقیب از یک رخداد خصوصی استفاده میکنند و 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 برای هر کامپوننت است و میتواند برای کار ایزولهٔ مورد اعتماد از پذیرش عبور کند، در حالی که PeakMemorySchedulerBudgetBytes زمانبند مشترک سراسری فرآیند را پیکربندی میکند
آمار
THPDFPeakMemorySchedulerStatistics بایتهای رزرو فعلی و اوج، رزروهای فعال فعلی و اوج، منتظران فعلی و اوج، پذیرشهای کل و تأخیری، پذیرشهای بزرگازحد، لغوها و کل زمان انتظار را گزارش میکند
THPDFOperationTelemetry.ScheduledMemoryBytes، MemorySchedulerWaitMilliseconds و MemorySchedulerDelayed هزینه زمانبندی را به جدیدترین عملیات نسبت میدهند