რამდენი დრო სჭირდება მთელი აპლიკაციის პაუზას გარბიჯ კოლექციის დროს?
sobes.tech AI
პასუხი AI-სგან
Go (Golang) ენაში ნაგვის შეგროვება განხორციელებულია მინიმალური შესვენებებით პროგრამისთვის. თანამედროვე GC — ეს სამფაზიანი, კონკურენტული შეგროვია, რომელიც ცდილობს შეამციროს შეჩერების დრო (stop-the-world) მინიმუმამდე.
Go-ის GC-ის ტიპიური შეჩერების დრო ჩვეულებრივ ზომავს მიკროსეკუნდებს ან დაბალ მილიწამებს, ხშირად ნაკლებია 1 მილიწამზე, დამოკიდებულია გამოყოფილ მეხსიერების მოცულობაზე და დატვირთვაზე. ეს მიღწეულია იმით, რომ ნაგვის შეგროვების უმეტესი ნაწილი ხორციელდება პარალელურად პროგრამის შესრულებასთან, და შეჩერებები საჭიროა მხოლოდ მოკლე სინქრონიზაციებისთვის.
ამიტომ, Go-ში GC-ის დროს მთელი პროგრამის შეჩერების დრო ძალიან მოკლეა — ჩვეულებრივ რამდენიმე ასეული მიკროსეკუნდიდან რამდენიმე მილიწამამდე, რაც პრაქტიკულად შეუმჩნეველია მომხმარებლისთვის.