איסוף זבל (מדעי המחשב) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מניית התייחסות דווקא נפוצה, למרות שלא משתמשים בה בג'אווה
Naorz (שיחה | תרומות)
אין תקציר עריכה
שורה 6:
בהקשר הנוכחי, "זבל" הוא אובייקט שהזיכרון אותו הוא תופס [[הקצאת זיכרון דינמית|הוקצה באופן דינמי]], ואין אליו אף הצבעה (באופן ישיר או עקיף) על יד אף משתנה הנמצא בשימוש, ולכן לא ניתן להגיע אליו. מצב בו חלק מאותם אובייקטים שאין בהם צורך לא נמחקים מכונה "[[דליפת זיכרון]]" (Memory leak) ועלול להביא למצב בו משאבי הזיכרון שהתוכנית משתמשת בהם הולכים וגדלים ואף לקריסה (הפסקת ריצה) של התוכנית.
 
איסוף משחררזבל אתחוסך מן המתכנת ממעקבאת אחריהמעקב אחר אובייקטים להם הקצה זיכרון במהלך התוכנית ומהצורךואת הצורך לשחרר את הזיכרון בצורה תקינה עם סיום השימוש בהם. כמו כן מונע שגיאות שלזמן נסיונותריצה לשיחרורהנובעות מניסיון לשחרר זיכרון שלא הוקצה. חסרונו הבולט הוא תוספת מסויימת של תקורות בביצועי התוכנית בפועל, היבט משמעותי במיוחד עבור תוכניות [[זמן אמת]].
 
==יישום איסוף אוטומטי בשפות תכנות==