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.