Sobes.tech
Junior — Middle

Mi a maximális számú egyidejű goroutine, ami az alkalmazásában megengedett?

sobes.tech MI

Válasz az MI-től

A Go-ban nincs szigorú korlátozás a párhuzamosan futó goroutine-ok számát illetően. Elméletileg nagyon sok lehet — tízezrek, százezrek, sőt milliók is, ha van elég memória és rendszererőforrás. Azonban a gyakorlatban a maximális szám a rendelkezésre álló memóriától, a terheléstől és az alkalmazás architektúrájától függ.

A goroutine-ok könnyűsúlyúak, de mindegyikhez kis verem (alapértelmezés szerint kb. 2 KB) szükséges, amely dinamikusan növekedhet. Ha túl sok goroutine-t hozunk létre, kifogyhat a memória vagy a teljesítmény romolhat a kontextusváltás miatt.

Ajánlott az alkalmazás valódi igényeire alapozni, és profilozni a goroutine-ok használatát, hogy elkerüljük a túlzott létrehozást. Például egy hálózati szervernél, sok kapcsolat esetén, általában egy goroutine-t hoznak létre minden kapcsolat számára, ami problémamentesen elérheti a tízezres nagyságrendet is.