Sobes.tech
Senior

Ako pripojiť profiler v Go? Ako robiť profily?

sobes.tech AI

Odpoveď od AI

V Go sa používajú balíky net/http/pprof a runtime/pprof na profilovanie.

Na pripojenie profileru k HTTP serveru stačí importovať:

import _ "net/http/pprof"

a spustiť HTTP server, napríklad:

import (
    "net/http"
    _ "net/http/pprof"
)

func main() {
    go func() {
        http.ListenAndServe(":6060", nil)
    }()
    // zvyšok kódu aplikácie
}

Po spustení je možné robiť profily prístupom k endpointom:

  • http://localhost:6060/debug/pprof/profile — CPU profil (predvolených 30 sekúnd)
  • http://localhost:6060/debug/pprof/heap — profil pamäte
  • http://localhost:6060/debug/pprof/goroutine — stav gorutín

Na programové uloženie CPU profilu do súboru:

import (
    "os"
    "runtime/pprof"
)

func main() {
    f, _ := os.Create("cpu.prof")
    pprof.StartCPUProfile(f)
    defer pprof.StopCPUProfile()

    // kód na profilovanie
}

Na analýzu profilov sa používa príkaz go tool pprof.