Senior
Cum se conectează un profiler în Go? Cum se realizează profile?
sobes.tech AI
Răspuns de la AI
În Go, se utilizează pachetele net/http/pprof și runtime/pprof pentru profilare.
Pentru a conecta profiler-ul la serverul HTTP, este suficient să importați:
import _ "net/http/pprof"
și să porniți serverul HTTP, de exemplu:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// restul codului aplicației
}
După pornire, puteți face profile accesând endpoint-urile:
http://localhost:6060/debug/pprof/profile— Profil CPU (implicit 30 secunde)http://localhost:6060/debug/pprof/heap— Profil memoriehttp://localhost:6060/debug/pprof/goroutine— Starea goroutine-urilor
Pentru a salva profilul CPU în fișier programatic:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// codul de profilat
}
Pentru analiza profilurilor, se folosește comanda go tool pprof.