תזמון זיכרון שיא
HotPDF מכניס פעולות מתחרות בעלות טביעת רגל גבוהה דרך תקציב בתים אחד בהיקף תהליך לפני שהן מקצות את קבוצות העבודה העיקריות שלהן
פעולות מכוסות
- טעינת מסמך
- רינדור עמודים סינכרוני, ממטמון ופרוגרסיבי
- רינדור עמוד סינכרוני, שמור במטמון ופרוגרסיבי
- אופטימיזציית זרמים סלקטיבית
- אופטימיזציית תמונות מקבילה מגובלת
כל פעולה מזמינה הערכה שמרנית הנגזרת מגודל המקור, ממדי הרינדור, DPI, סף הזרמים ומספר העובדים שלה, ואז משחררת את ההזמנה בגבול הטלמטריה הקיים של הפעולה
מדיניות כניסה
- תקציב ברירת המחדל בהיקף תהליך הוא
536870912בתים - ערך של
0משבית את הגבלת התקציב - ממתינים מתקבלים בסדר FIFO כך שבקשות קטנות מאוחרות אינן יכולות להרעיב בקשה גדולה מוקדמת
- בקשה הגדולה מהתקציב המוגדר יכולה לרוץ רק כאשר אין הזמנה פעילה אחרת
- הגדלת התקציב יכולה להכניס עבודה בתור מיד, בעוד הקטנתו לעולם אינה מפריעה לעבודה פעילה
- המתנות בתור בודקות את token ביטול הפעולה במרווחים מגובלים של 50 ms
הנתיב ללא תחרות אינו מקצה אירוע המתנה, בעוד פעולות מתחרות משתמשות באירוע פרטי אחד ואינן מסתובבות
תצורה
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 מייחסים את עלות התזמון לפעולה האחרונה