Sobes.tech
Junior

Ի՞նչ է աղբահանության հավաքողը (Garbage Collector):

sobes.tech AI

Պատասխան AI-ից

Ավտոմատ հիշողության կառավարումի մեխանիզմ, որը ազատում է անհասանելի օբյեկտները հոսքի մեջ:

Աշխատանքի սկզբունքները:

  • Օբյեկտների հասանելիության հայտնաբերում: Հետևում է այն օբյեկտներին, որոնց վրա հղում են կենդանի (հասանելի) օբյեկտները՝ արմատներից (օրինակ՝ թելերի ստեկից):
  • Անհասանելի օբյեկտների ազատում: Հղում չունեցող օբյեկտները համարվում են "մաքուր" և նրանց հիշողությունը կարող է կրկին օգտագործվել:

Ձեռքբերումների տեսակներ (լեզու/հարթակ կախված):

  • Mark and Sweep: Նշում է հասանելի օբյեկտները (նշում), ապա անցնում է հոսքի միջով և ազատում ոչ նշվածները (մաքարում): Կարող է առաջացնել հիշողության ֆրագմենտացիա:
  • Copying: Բաժանում է հոսքը երկու մասի: Կոպի է կենդանի օբյեկտները նոր մասում, ապա մաքրում է հին մասը: Պրիվենտ է ֆրագմենտացիան, բայց պահանջում է ավելի շատ հիշողություն:
  • Գեներացիոնալ: Օբյեկտները բաժանվում են տարիքով՝ գեներացիաներ: Ավելի հաճախ հավաքում է աղբը "մեծ" գեներացիայում, որտեղ մեծ մասը օբյեկտների երկար կյանք չկա:

Առավելություններ:

  • Հիշողության լքման հավանականությունը նվազում է:
  • Զարգացման գործընթացը պարզ է՝ անհրաժեշտ չէ բացահայտ ազատել հիշողությունը:

Կամչություններ:

  • Կարող է առաջացնել ուշացումներ (պաուզաներ) հավաքման ժամանակ:
  • Վերահսկման ժամանակը կանխատեսելի չէ: