Кіріспе

Жад басқарудағы автоматты жад басқару түрі – қоқыс жинау. [[Файл:Компьютерлік бағдарламалардың құрылымы мен интерпретациясы p.764a. gif|thumb|400px|Lisp архитектурасындағы тоқтату және көшіру қоқыс жинау: Басқа, ұқсас техникаларға стекпен бөлу, аймақтарды анықтау және жадқа иелік ету, сондай-ақ олардың комбинациялары жатады. Қоқыс жинау бағдарламаның жалпы өңдеу уақытының маңызды бөлігін алып, осының салдарынан өнімділікке әсер етеді. Жадтан басқа ресурстар, мысалы, желілік сокеттер, деректер базасының тұтқалары, терезелер, файл дескрипторлары және құрылғы дескрипторлары әдетте қоқыс жинау арқылы емес, басқа әдістермен (мысалы, деструкторлар) басқарылады. Осы әдістердің кейбіреуі жадыны босатуға да қабілетті.]

Шолу

Көптеген бағдарламалау тілдері қоқыс жинауды қажет етеді, тілдің сипаттамасының бір бөлігі ретінде немесе (мысалы, RPL, Java, C#, D).

Артықшылықтар

GC бағдарламалаушыны жадты қолмен босатудан құтқарады. Бұл кейбір қателерді болдырмауға көмектеседі:

Дэнглингтік көрсеткіштер, жадтың бір бөлігі әлі де көрсеткіштер арқылы сілтемелі болған кезде босатылса пайда болатын жағдай. Осыған дейін жад басқа мақсатқа берілген болуы мүмкін, бұл болжауға қиын нәтижелерге әкеледі. Екі рет босату қателері, бағдарлама бұрын босатылған, тіпті қайтадан бөлінген жад аймағын босатуға тырысқанда туындайды. Белгілі бір жад ағу түрлері, бағдарлама қол жетімсіз болған объектілермен алынған жадты босата алмағанда пайда болады, бұл жадтың толыққанды ағып кетуіне алып келуі мүмкін.

Кемшіліктер

GC жадты қайсысын босату керектігін анықтау үшін есептеу ресурстарын қолданады. Сондықтан, бастапқы кодта нысанның өмір сүру мерзімін қолмен көрсетпеудің жеңілдігі үшін төленетін құн – бағдарламаның өнімділігін төмендетуі мүмкін қосымша жүктеме.