Junior
Ի՞նչ է աղբահանության հավաքողը (Garbage Collector):
sobes.tech AI
Պատասխան AI-ից
Ավտոմատ հիշողության կառավարումի մեխանիզմ, որը ազատում է անհասանելի օբյեկտները հոսքի մեջ:
Աշխատանքի սկզբունքները:
- Օբյեկտների հասանելիության հայտնաբերում: Հետևում է այն օբյեկտներին, որոնց վրա հղում են կենդանի (հասանելի) օբյեկտները՝ արմատներից (օրինակ՝ թելերի ստեկից):
- Անհասանելի օբյեկտների ազատում: Հղում չունեցող օբյեկտները համարվում են "մաքուր" և նրանց հիշողությունը կարող է կրկին օգտագործվել:
Ձեռքբերումների տեսակներ (լեզու/հարթակ կախված):
- Mark and Sweep: Նշում է հասանելի օբյեկտները (նշում), ապա անցնում է հոսքի միջով և ազատում ոչ նշվածները (մաքարում): Կարող է առաջացնել հիշողության ֆրագմենտացիա:
- Copying: Բաժանում է հոսքը երկու մասի: Կոպի է կենդանի օբյեկտները նոր մասում, ապա մաքրում է հին մասը: Պրիվենտ է ֆրագմենտացիան, բայց պահանջում է ավելի շատ հիշողություն:
- Գեներացիոնալ: Օբյեկտները բաժանվում են տարիքով՝ գեներացիաներ: Ավելի հաճախ հավաքում է աղբը "մեծ" գեներացիայում, որտեղ մեծ մասը օբյեկտների երկար կյանք չկա:
Առավելություններ:
- Հիշողության լքման հավանականությունը նվազում է:
- Զարգացման գործընթացը պարզ է՝ անհրաժեշտ չէ բացահայտ ազատել հիշողությունը:
Կամչություններ:
- Կարող է առաջացնել ուշացումներ (պաուզաներ) հավաքման ժամանակ:
- Վերահսկման ժամանակը կանխատեսելի չէ: