Junior — Middle
Որոնք են հիշողության այն տարածքները, որոնք կառավարում է աղբարկղը ավտոմատ հիշողության մաքրման համակարգում?
sobes.tech AI
Պատասխան AI-ից
Flutter (Dart VM)-ում օգտագործվող ավտոմատ հիշողության մաքրման համակարգում, գարշահավաքը կառավարում է դինամիկ հիշողության տարածքը, որտեղ տեղադրվում են ծրագրի գործարկման ժամանակ ստեղծված օբյեկտները: Սա ներառում է՝
- Հավաք (Heap): հիմնական տարածքը, որտեղ տեղադրվում են դինամիկորեն ստեղծված օբյեկտներն ու տվյալները:
- Ստակ (Stack): սովորաբար չի կառավարվում գարշահավաքի կողմից, քանի որ պարունակում է տեղական փոփոխականներ և ավտոմատ կերպով կառավարվում է ֆունկցիաների կանչերի ժամանակ:
Գարշահավաքը հետևում է հավաքում գտնվող օբյեկտներին, որոշում, թե որոնք արդեն չեն օգտագործվում (չի հասանելի ռուոտային հղումներից), և ազատում է հիշողությունը՝ կանխելու համար հիշողության լճացումը:
Օրինակ՝ եթե Dart-ում ստեղծեք օբյեկտ, օրինակ՝
var list = [1, 2, 3];
Այս ցուցակը տեղադրվում է հավաքում, և գարշահավաքը ազատում է հիշողությունը, երբ այլ հղումներ չեն լինում դրա վրա։