Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, როგორ ხორციელდება მეხსიერების მართვა და ობიექტების ავტომატური სისუფთავე JavaScript-ში?

sobes.tech AI

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

JavaScript-ში მეხსიერების მართვა ავტომატურად ხდება ნაგვის შეგროვების (garbage collection) მექანიზმის საშუალებით. როდესაც ობიექტები იქმნება, ისინი იკავებენ მეხსიერებას heap-ში. ნაგვის შეგროვებელი პერიოდულად შემოწმებს, რომელი ობიექტები აღარ გამოიყენება — ანუ, რომ მათზე აქტიური კოდისგან არ არის მითითებები — და თავისუფლდებს მათ მიერ დაკავებულ მეხსიერებას.

მთავარი ალგორითმი არის მითითებების რაოდენობის გამოთვლა და მისაწვდომი ობიექტების ძიება (mark-and-sweep). მაგალითად, თუ ცვლადი მითითებულია ობიექტზე, ის ითვლება ცოცხალად. თუ მითითებები გაქრება, ობიექტი ხდება წაშლის კანდიდატი.

მაგალითი:

let obj = { name: "test" };
obj = null; // ახლა ობიექტი მიუწვდომელია და ნაგვის შეგროვებელი მას წმენდს

ამ გზით, პროგრამისტს არ სჭირდება მეხსიერების ხელით გათავისუფლება, რაც ამცირებს მეხსიერების გაჟონვისთან დაკავშირებული შეცდომების ალბათობას.