Sobes.tech
Back to questions
Senior
1

Что знаешь про пакет runtime? Какие методы использовал?

Companies where asked
СБК ПАРУС

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 полезен для мониторинга и управления поведением программы на низком уровне.