Junior — Middle
როგორ ხორციელდება ავტომატური მეხსიერების სუფთავება პროგრამის შესრულების გარემოში?
sobes.tech AI
პასუხი AI-სგან
შესრულების გარემოში, მაგალითად Android-ში, ავტომატური მეხსიერების წმენდა ხორციელდება მტვერსასრუტის (Garbage Collector, GC) დახმარებით. იგი აკვირდება მეხსიერებაში ობიექტებს და თავისუფლდებიან მათგან, რომელთაც აღარ აქვთ პროგრამაში მითითებები. ეს ეხმარება მეხსიერების ნაკადების თავიდან აცილებას და რესურსების გათავისუფლებას პირდაპირი ჩარევის გარეშე.
სამუშაო პრინციპი:
- მტვერსასრუტი პერიოდულად მუშაობს და სკანირებს heap-ს, ძიებაში მიუწვდომელ ობიექტებს.
- ასეთ ობიექტებს მიიჩნევენ ნაგავს და მათი მეხსიერება თავისუფლდება.
Android-ში გამოიყენება Dalvik ან ART გარემო, რომლებსაც აქვთ საკუთარი GC-ის განხორციელებები, ოპტიმიზირებული მობილური მოწყობილობებისთვის.
Java (Android) მაგალითი:
// ობიექტის შექმნა
MyObject obj = new MyObject();
// როდესაც obj აღარ გამოიყენება და მის მიმართებები გაქრება,
// მტვერსასრუტი ავტომატურად გაათავისუფლებს მეხსიერებას.
obj = null;
// შეიძლება გამოიძახოთ System.gc(), როგორც რეკომენდაცია GC-სთვის, მაგრამ ეს არ გარანტირებს დაუყოვნებლივ წმენდას.
System.gc();