איסוף זבל (מדעי המחשב) – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
"מפרש" ולא "פרשן" (למה?) |
מ בוט החלפות: מסוים; על ידי ; תכנות; |
||
שורה 2:
'''איסוף זבל''' (באנגלית: '''Garbage collection''') הוא תהליך שבו סביבת הריצה של [[תוכנית מחשב]] מנקה מה[[זיכרון מחשב|זיכרון]] את ה[[אובייקט (הנדסת תוכנה)|אובייקטים]] שאין בהם עוד צורך.
המנגון הומצא ויושם לראשונה בשנת 1959
בהקשר הנוכחי, "זבל" הוא אובייקט שהזיכרון אותו הוא תופס [[הקצאת זיכרון דינמית|הוקצה באופן דינמי]], ואין אליו אף הצבעה (באופן ישיר או עקיף) על יד אף משתנה הנמצא בשימוש, ולכן לא ניתן להגיע אליו. מצב בו חלק מאותם אובייקטים שאין בהם צורך לא נמחקים מכונה "[[דליפת זיכרון]]" (Memory leak) ועלול להביא למצב בו משאבי הזיכרון שהתוכנית משתמשת בהם הולכים וגדלים ואף לקריסה (הפסקת ריצה) של התוכנית.
איסוף זבל חוסך מן המתכנת את המעקב אחר אובייקטים להם הקצה זיכרון במהלך התוכנית ואת הצורך לשחרר את הזיכרון בצורה תקינה עם סיום השימוש בהם. כמו כן מונע שגיאות זמן ריצה הנובעות מניסיון לשחרר זיכרון שלא הוקצה. חסרונו הבולט הוא תוספת
==יישום איסוף אוטומטי בשפות תכנות==
שורה 20:
===סימון ומחיקה===
טכניקה אחת, הקרויה "סימון ומחיקה" (Mark and sweep), היא הטכניקה הנפוצה ביותר בשימוש בשפות
היתרונות העיקריים של שיטה זו:
|