איסוף זבל (מדעי המחשב) – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
מ קישורים פנימיים |
קישורים פנימיים. וגם: הנפוץ ביותר הוא שימוש משולב בשתי הטכניקות. |
||
שורה 2:
'''איסוף זבל''' (באנגלית: '''Garbage collection''') הוא תהליך שבו סביבת הריצה של [[תוכנית מחשב]] מנקה מה[[זיכרון מחשב|זיכרון]] את ה[[אובייקט (הנדסת תוכנה)|אובייקטים]] שאין בהם עוד צורך.
המנגון הומצא ויושם לראשונה בשנת 1959 על ידי ג'ון מקארתי עבור שפת [[Lisp]]{{הערה| ג'ון מקארתי, [http://www-formal.stanford.edu/jmc/history/lisp.ps History Of Lisp], אוניברסיטת [[סטנפורד]], 1979}}. איסוף זבל נפוץ בשפות תכנות [[תכנות מונחה-עצמים|מוכוונות עצמים]] מודרניות כגון [[Java]] ו [[C Sharp|#C{{כ}}]], וכן בשפות המורצות על ידי [[מפרש (תוכנה)|מפרש]] כמו [[Perl]], {{כ}}[[
בהקשר הנוכחי, "זבל" הוא אובייקט שהזיכרון אותו הוא תופס [[הקצאת זיכרון דינמית|הוקצה באופן דינמי]], ואין אליו אף הצבעה (באופן ישיר או עקיף) על יד אף משתנה הנמצא בשימוש, ולכן לא ניתן להגיע אליו. מצב בו חלק מאותם אובייקטים שאין בהם צורך לא נמחקים מכונה "[[דליפת זיכרון]]" (Memory leak) ועלול להביא למצב בו משאבי הזיכרון שהתוכנית משתמשת בהם הולכים וגדלים ואף לקריסה (הפסקת ריצה) של התוכנית.
שורה 20:
===סימון ומחיקה===
טכניקה אחת, הקרויה "סימון ומחיקה" (Mark and sweep)
היתרונות העיקריים של שיטה זו:
|