Sobes.tech
Junior — Middle

Ako dlho trvá proces pauzy celej aplikácie počas zberu odpadu?

sobes.tech AI

Odpoveď od AI

V jazyku Go (Golang) je zber odpadu implementovaný s minimálnymi prestávkami pre aplikáciu. Moderný GC v Go je trojfázový, konkurenčný zberač, ktorý sa snaží minimalizovať čas zastavenia (stop-the-world).

Typický čas prestávky v GC v Go sa zvyčajne meria v mikrosekundách alebo nízkych milisekundách, často menej ako 1 milisekunda, v závislosti od objemu prideleného pamäťového priestoru a záťaže. Toho sa dosahuje tým, že väčšina práce na zbere odpadu sa vykonáva paralelne s behom aplikácie, a prestávky sú potrebné iba pre krátke synchronizácie.

Týmto spôsobom je čas prestávky celej aplikácie počas GC v Go veľmi krátky — zvyčajne od niekoľkých stoviek mikrosekúnd do niekoľkých milisekúnd, čo je prakticky nepostrehnuteľné pre používateľa.