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ätehttp://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.