Senior
Jak podłączyć profilator w Go? Jak robić profile?
sobes.tech AI
Odpowiedź od AI
W Go do profilowania używa się pakietów net/http/pprof i runtime/pprof.
Aby podłączyć profilera do serwera HTTP, wystarczy zaimportować:
import _ "net/http/pprof"
i uruchomić serwer HTTP, na przykład:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// reszta kodu aplikacji
}
Po uruchomieniu można pobrać profile, odwołując się do punktów końcowych:
http://localhost:6060/debug/pprof/profile— Profil CPU (domyślnie 30 sekund)http://localhost:6060/debug/pprof/heap— Profil pamięcihttp://localhost:6060/debug/pprof/goroutine— Stan goroutineów
Aby programowo zapisać profil CPU do pliku:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// kod do profilowania
}
Do analizy profili używa się polecenia go tool pprof.