Ինչպես է իրականացվում ավտոմատ աղբահավաքը ծրագրավորման լեզուներում?
sobes.tech AI
Պատասխան AI-ից
Ավտոմատ աղբի հավաքագրում (Garbage Collection, GC) — հիշողության կառավարման մեխանիզմ, որը ինքնաբերաբար ազատում է ծրագրի կողմից այլևս չօգտագործվող օբյեկտների զբաղեցրած հիշողությունը:
GC-ի հիմնական կիրառական մոտեցումները՝
-
Հղումի հաշվարկ (Reference Counting) — յուրաքանչյուր օբյեկտին նշանակվում է հղումների հաշվիչ։ Երբ այն հասնում է զրոյի, օբյեկտը ջնջվում է։ Թերություն — չի աշխատում ցիկլային հղումներով։
-
Նշում և մաքուր (Mark-and-Sweep) — GC նախ նշում է բոլոր հասանելի օբյեկտները, ապա մաքրում այն բոլորին, որոնք նշված չեն, համարելով դրանք աղբ։
-
Նախագծում (Copying Collector) — հիշողությունը բաժանվում է երկու մասի, ակտիվ օբյեկտները պատճենվում են մեկից մյուսը, հին մասը ազատվում է։
-
Ամենագեներացիոն GC (Generational GC) — օբյեկտները բաժանվում են կյանքի տևողության համաձայն, երիտասարդ սերունդը հաճախակի մաքրվում է, ինչը բարձրացնում է արդյունավետությունը։
Օրինակ, Android-ում օգտագործվում է Dalvik/ART գեներացիոն GC, որը աշխատում է ֆոնային ռեժիմում, նվազեցնելով ուշացումները և կանխելով հիշողության արտահոսքերը։