Что знаешь про пакет runtime? Какие методы использовал?
Answer from AI
sobes.tech AI
Пакет runtime в Go предоставляет функции для взаимодействия с рантаймом языка, включая управление горутинами, сборщиком мусора, информацией о системе и отладкой.
Основные возможности и методы, которые часто используются:
-
runtime.GOOSиruntime.GOARCH— константы, показывающие операционную систему и архитектуру. -
runtime.NumGoroutine()— возвращает текущее количество запущенных горутин. -
runtime.GOMAXPROCS(n int)— задаёт максимальное количество ОС-потоков, которые могут одновременно выполнять Go-код. -
runtime.Caller(skip int)— возвращает информацию о вызове функции в стеке (файл, строка, функция), полезно для логирования и отладки. -
runtime.Stack(buf []byte, all bool)— записывает стек вызовов в буфер, используется для диагностики. -
runtime.GC()— принудительно запускает сборщик мусора.
Пример использования runtime.NumGoroutine:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("Горутины до запуска:", runtime.NumGoroutine())
go func() {
// какая-то работа
}()
fmt.Println("Горутины после запуска:", runtime.NumGoroutine())
}
Таким образом, пакет runtime полезен для мониторинга и управления поведением программы на низком уровне.