Senior
Jak připojit profiler v Go? Jak pořizovat profily?
sobes.tech AI
Odpověď od AI
V Go se používají balíčky net/http/pprof a runtime/pprof pro profilování.
Pro připojení profileru k HTTP serveru stačí importovat:
import _ "net/http/pprof"
a spustit HTTP server, například:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// zbytek kódu aplikace
}
Po spuštění lze profily pořizovat přístupem k endpointům:
http://localhost:6060/debug/pprof/profile— CPU profil (výchozí 30 sekund)http://localhost:6060/debug/pprof/heap— profil pamětihttp://localhost:6060/debug/pprof/goroutine— stav gorutin
Pro programové uložení CPU profilu do souboru:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// kód, který má být profilován
}
Pro analýzu profilů se používá příkaz go tool pprof.