Junior
რა არის ნაგვის შეგროვებელი (Garbage Collector)?
sobes.tech AI
პასუხი AI-სგან
ავტომატური მეხსიერების მართვის მექანიზმი, რომელიც გამოუყენებელ ობიექტებს თავისუფლდებს ხისგან.
მუშაობის პრინციპები:
- ობიექტების ხელმისაწვდომობის განსაზღვრა: აკვირდება ცოცხალ (ხელმისაწვდომ) ობიექტებს, რომლებიც მითითებულია ძირებიდან (მაგალითად, ნაკადის სტეკიდან).
- მოუსწრაფებელი ობიექტების გათავისუფლება: ობიექტები, რომლებსაც არ აქვთ მითითებები, ითვლება "მტვერს" და მათი მეხსიერება შეიძლება ხელახლა გამოყენებულ იქნას.
მოწმენდების ტიპები (ენა/პლატფორმაზე დამოკიდებული):
- Mark and Sweep: აღნიშნავს ხელმისაწვდომ ობიექტებს (ნიშნავს), შემდეგ გადის ხის მეშვეობით და თავისუფლდებს არასანიშნულებს (სუფთავება). შეიძლება გამოიწვიოს მეხსიერების ფრაგმენტაცია.
- Copying: ხის ორ ნაწილად ყოფს. ცოცხალ ობიექტებს კოპირებს ახალ ნაწილში, შემდეგ წმენდს ძველს. თავიდან ავიცილებს ფრაგმენტაციას, მაგრამ მოითხოვს მეტ მეხსიერებას.
- პროგრესი: ობიექტებს ასაკის მიხედვით ნაწილებს. უფრო ხშირად აგროვებს მტვერს "ახალ" თაობაში, სადაც უმეტესობა ობიექტი მოკლე ხანში ცხოვრობს.
უპირატესობები:
- ამცირებს მეხსიერების გაჟონვის ალბათობას.
- ამარტივებს განვითარებას (არ არის საჭირო მეხსიერების გამიჯვნა ხელით).
მკაცრებები:
- შეიძლება გამოიწვიოს დაგვიანებები (პაუზები) შეგროვების დროს.
- შეგროვების დრო წინასწარ არ არის პროგნოზირებადი.