Sobes.tech
Junior — Middle

Kiek laiko trunka visos programos pauzės procesas atliekant šiukšlių surinkimą?

sobes.tech AI

Atsakymas iš AI

Go (Golang) kalboje šiukšlių rinkimas įgyvendinamas su minimaliomis pauzėmis programai. Šiuolaikinis GC Go yra trijų fazių, konkurencingas rinkėjas, kuris siekia sumažinti sustojimo laiką (stop-the-world) iki minimumo.

Tipinis sustojimo laikas GC Go dažniausiai matuojamas mikrosekundėmis arba žemomis milisekundėmis, dažnai mažiau nei 1 milisekundė, priklausomai nuo paskirtos atminties kiekio ir apkrovos. Tai pasiekiama todėl, kad didžioji dalis šiukšlių rinkimo darbo atliekama paraleliai su programos vykdymu, o pauzės reikalingos tik trumpoms sinchronizacijoms.

Taigi, visos programos sustojimo laikas GC metu yra labai trumpas — dažniausiai nuo kelių šimtų mikrosekundžių iki kelių milisekundžių, tai praktiškai nepastebima naudotojui.