Sobes.tech
Junior — Middle

როგორ מזהה აგროვებელი ნაგავი, რომ ობიექტი აღარ გამოიყენება და შეიძლება წაიშალოს?

sobes.tech AI

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

Android-ში (JVM ან ART-ზე დაფუძნებული) ნაგვის შეგროვებელი (Garbage Collector) განსაზღვრავს, რომ ობიექტი აღარ გამოიყენება, თუ მასზე არ არსებობს აქტიური მითითებები ძირეულ ობიექტებიდან, როგორიცაა ნაკადების სტეკები, სტატიკური ველები და ა.შ.

პროცესი დაახლოებით ასეა:

  • შეგროვებელი იწყებს ძირეულ ობიექტებიდან და აღნიშნავს ყველა ობიექტს, რომელსაც მისამართებით მიაღწევთ.
  • ყველა აღნიშნულს არ მიეკუთვნება, როგორც მიუწვდომელი და შეიძლება წაიშალოს.

ამ გზით, თუ ობიექტი აქტიური კოდიდან მიუწვდომელია, ის ითვლება ნაგავს და განკუთვნილია შეგროვებისთვის.

ეს ალგორითმი სახელდება ღრმადძირით ან მარკ-და-სვიპ (mark-and-sweep).