Back to questions
Junior — Middle
84
Как определить текущий размер или нагрузку, которую использует горутина в Go?
Companies where asked
Астрал-Софт
Answer from AI
sobes.tech AI
В Go напрямую определить точный размер или нагрузку конкретной горутины сложно, так как горутины легковесны и управляются рантаймом.
Однако, можно:
- Использовать пакет
runtimeдля получения общей информации о состоянии горутин (например,runtime.NumGoroutine()возвращает количество активных горутин). - Профилировать приложение с помощью
pprof, чтобы увидеть использование CPU и памяти, а также распределение по горутинам.
Пример получения количества горутин:
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("Active goroutines:", runtime.NumGoroutine())
time.Sleep(3 * time.Second)
}
Для более детального анализа нагрузки на горутины используют профилирование и трассировку.