Senior
Kuidas ühendada profiler Go-s? Kuidas profiile võtta?
sobes.tech AI
Vastus AI-lt
Go keeles kasutatakse profiili jaoks pakette net/http/pprof ja runtime/pprof.
Profila ühendamiseks HTTP-serveriga piisab, kui importida:
import _ "net/http/pprof"
ning käivitada HTTP-server, näiteks:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// ülejäänud rakenduse kood
}
Pärast käivitamist saab profiile teha endpointidele pääsemisega:
http://localhost:6060/debug/pprof/profile— CPU profiil (vaikimisi 30 sekundit)http://localhost:6060/debug/pprof/heap— mälu profiilhttp://localhost:6060/debug/pprof/goroutine— gorutinite olek
CPU profiili salvestamiseks faili programmiga:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// profiilitav kood
}
Profiile analüüsiks kasutatakse käsku go tool pprof.