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 օբյեկտը դառնում է հասանելի չէ և կհեռացվի հավաքիչով։