Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ მტვრის შეგროვების მექანიზმის მუშაობის პრინციპი პროგრამირების ენებში?

sobes.tech AI

პასუხი AI-სგან

გაყვანის აგროვი (Garbage Collector, GC) არის ავტომატური მეხსიერების მართვის მექანიზმი, რომელიც გაათავისუფლებს მეხსიერებას, რომელიც დაკავებულია იმ ობიექტებით, რომლებიც უკვე აღარ გამოიყენება პროგრამის მიერ.

მუშაობის პრინციპი:

  1. გავლენების მონიტორინგი: GC განსაზღვრავს, რომელი ობიექტები ხელმისაწვდომია (მქონია აქტიური კოდიდან მიმთითებლები) და რომელი — არა.
  2. მტვრის გამოვლენა: ობიექტები, რომლებსაც არ აქვთ მიმთითებლები, ითვლება მტვრად და შეიძლება წაიშალოს.
  3. მეხსიერების გათავისუფლება: GC გათავისუფლებს ამ ობიექტების დაკავებულ მეხსიერებას, რათა ის ხელახლა გამოყენებადი გახდეს.

Flutter (Dart)-ში მტვრის შეგროვებელი დაფუძნებულია მიმთითებლების რაოდენობაზე და პერიოდულ სუფთავებაზე. ის მუშაობს ფონზე და ცდილობს მინიმუმამდე დაიყვანოს პროგრამის მუშაობის შეწყვეტები.

მაგალითი:

class MyClass {
  String data;
  MyClass(this.data);
}

void main() {
  MyClass obj = MyClass('გამარჯობა');
  obj = null; // ახლა MyClass ობიექტი მიუწვდომელია და შეიძლება შეგროვდეს GC-ით
}

როდესაც obj ხდება null, MyClass ობიექტი ხდება მიუწვდომელი და წაიშლება მტვრის შეგროვებლის მიერ.