פרויקט מנוע סריקה עם תקציב זיכרון¶
בפרויקט הזה נבנה שתי דרכים לסרוק קובץ: קריאה דרך באפר קבוע ומיפוי של עותק יציב. שתיהן יחשבו את מספר הבייטים וסכום בייטים מחזורי, וישמשו בסיס להשוואת עלות הכנה, שימוש חוזר ולחץ זיכרון. הסכום הוא כלי בדיקה לימודי ואינו checksum קריפטוגרפי או הגנה מפני שינוי זדוני.
הגרסה הממופה לא תחזיר הפניה בטוחה לקובץ חיצוני שמותר לשנותו. עליה להגדיר איך נוצר מקור יציב, או להציג במפורש חוזה חיצוני שמבטיח אי־שינוי. בפתרון הייחוס נשתמש בעותק בתוך memfd שנאטם לשינויים לפני המיפוי, ונכלול את מחיר ההעתקה בדוח.
התקציב יוגדר ביחידות ברורות. עבור הגרסה הממופה הוא יגביל את גודל העותק הלוגי, ועבור הגרסה הזורמת הוא יגביל את באפר העבודה. אין לטעון ששני המספרים הם גבול RSS קשיח של כל התהליך, משום שיש גם ספריות, metadata ו־page cache.
בדקו קובץ ריק, קובץ קטן מגודל עמוד, קובץ גדול מהתקציב של העותק וקובץ שנקרא כמה פעמים. הזריקו שינוי וקיצור של קובץ המקור בזמן ההכנה והסבירו איזה מצב מובטח אחרי יצירת העותק ואיזה מצב אינו מובטח לגבי הגרסה המקורית.
הגישו דוח עם זמן הכנה וזמן סריקה בנפרד, faults, מדד זיכרון תושב ותיאור מצב המטמון. בחרו עומס שבו מיפוי חוזר משתלם ועומס שבו הזרמה עדיפה, או הסבירו על סמך מדידה מדוע לא מצאתם יתרון במכונה שלכם. תנאי הסיום הוא נכונות תוצאה עבור מקור יציב, טיפול מפורש בשינוי חיצוני ודחיית בקשה שחורגת מהתקציב שהוגדר.