לדלג לתוכן

2.8 - מקצים ומשאבי זיכרון - תרגול

תרגול - תקציב וכשל מבוקר

הרחיבו את CountingResource עם שדה שמציין כמה הקצאות מצליחות עוד מותרות. כאשר התקציב מגיע לאפס, allocate צריכה לזרוק bad_alloc לפני פנייה ל־upstream.

הריצו vector שגדלה בכמה תצורות תקציב. בכל כשל ודאו שאחרי יציאת המכולה מהscope מספר ה־bytes החיים הוא אפס. אין להניח כמה בדיוק הקצאות vector תבצע בכל מימוש.

מאגר מונוטוני

השוו מילוי של vector עם reserve מראש למילוי בלי reserve, כאשר שתיהן משתמשות ב־monotonic_buffer_resource עם מקור גיבוי חסום. הסבירו למה capacity סופית דומה יכולה להסתיר צריכת arena שונה.

חיים ושוויון

ציירו את סדר החיים של resource ושל שתי מכולות שמשתמשות בו. הסבירו למה resource צריכה לשרוד את שתיהן ולמה אין להגדיר שני resources כשווים רק מפני ששניהם משתמשים ב־new_delete_resource.