Sobes.tech
Junior — Middle

რამდენი დრო სჭირდება მთელი აპლიკაციის პაუზას გარბიჯ კოლექციის დროს?

sobes.tech AI

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

Go (Golang) ენაში ნაგვის შეგროვება განხორციელებულია მინიმალური შესვენებებით პროგრამისთვის. თანამედროვე GC — ეს სამფაზიანი, კონკურენტული შეგროვია, რომელიც ცდილობს შეამციროს შეჩერების დრო (stop-the-world) მინიმუმამდე.

Go-ის GC-ის ტიპიური შეჩერების დრო ჩვეულებრივ ზომავს მიკროსეკუნდებს ან დაბალ მილიწამებს, ხშირად ნაკლებია 1 მილიწამზე, დამოკიდებულია გამოყოფილ მეხსიერების მოცულობაზე და დატვირთვაზე. ეს მიღწეულია იმით, რომ ნაგვის შეგროვების უმეტესი ნაწილი ხორციელდება პარალელურად პროგრამის შესრულებასთან, და შეჩერებები საჭიროა მხოლოდ მოკლე სინქრონიზაციებისთვის.

ამიტომ, Go-ში GC-ის დროს მთელი პროგრამის შეჩერების დრო ძალიან მოკლეა — ჩვეულებრივ რამდენიმე ასეული მიკროსეკუნდიდან რამდენიმე მილიწამამდე, რაც პრაქტიკულად შეუმჩნეველია მომხმარებლისთვის.