יום חמישי, מאי 28, 2009

איך אתה רוצה לנהל את הזיכרון שלך ?

טוב כולנו מכירים את השימוש בהקצאה דינמית פשוטה (malloc , realloc וכן הלאה) אבל מה עם טכניקות אחרות.
הבעיה בהקצאה כזאת היא הזמן שלוקח לך לשחרר את כל המופעים אחרי זה וכמובן נושא הפרגמנטציה.

אחד הפתרונות הנוספים שאני מכיר הוא מנגנון הPoolים ומומלץ בחום כאשר אתה רוצה להרוויח את זמן ההקצאה והשיחרור.
מה גם שיש פתרונות שיתנו לך GC גם ב C וגם ב C++ בתור אפקט נוסף (הם לא נועדו לכך אבל עדיין זה נותן את זה).

פתרון כזה נותן זמן קבוע לניהול הזיכרון , מאפשרים בנייה מודולרית של מקטעי הזיכרון (למשל לבנות עץ וכך לעבור עליו בצורה איטרטיבית ) , טופס פחות מקום.

דוגמה :
http://www.pjsip.org/pjlib/docs/html/group__PJ__POOL__GROUP.htm

פשוט להקצות ולהנות כמובן שיש בעייה שחייבים לדעת כמה באמת זיכרון צריך (ולא סתם 1TB) , הבנייה הראשונית לוקחת הרבה זמן , צריך ללמוד לעבוד עם שיטה חדשה.

אין תגובות:

הוסף רשומת תגובה