Junior — Middle
Hogyan határozhatjuk meg egy goroutine aktuális méretét vagy terhelését Go-ban?
sobes.tech MI
Válasz az MI-től
Go-ban nehéz közvetlenül meghatározni egy adott goroutine pontos méretét vagy terhelését, mivel a goroutine-ok könnyűsúlyúak és a runtime kezeli őket.
Azonban, lehet:
- A
runtimecsomagot használni az általános információk megszerzéséhez a goroutine-ok állapotáról (például, aruntime.NumGoroutine()visszaadja az aktív goroutine-ok számát). - Profilozni az alkalmazást a
pprofsegítségével, hogy lássuk a CPU és memória használatát, valamint a goroutine-ok közötti eloszlást.
Példa a goroutine-ok számának lekérésére:
package main
import (
"fmt"
"runtime"
"time"
)
func worker() {
time.Sleep(2 * time.Second)
}
func main() {
for i := 0; i < 5; i++ {
go worker()
}
fmt.Println("Aktív goroutine-ok:", runtime.NumGoroutine())
time.Sleep(3 * time.Second)
}
A goroutine-ok terhelésének részletesebb elemzéséhez profilozás és nyomon követés használható.