Senior
Go-da profiler necə qoşulur? Profil necə çəkilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da profil üçün net/http/pprof və runtime/pprof paketləri istifadə olunur.
Profileri HTTP-serverə qoşmaq üçün, sadəcə olaraq idxal etmək kifayətdir:
import _ "net/http/pprof"
və HTTP-serveri işə salmaq, məsələn:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// tətbiqin digər kodu
}
İşə salındıqdan sonra, endpoint-lərə müraciət etməklə profillər götürmək mümkündür:
http://localhost:6060/debug/pprof/profile— CPU profili (standart 30 saniyə)http://localhost:6060/debug/pprof/heap— yaddaş profilihttp://localhost:6060/debug/pprof/goroutine— goroutine vəziyyəti
CPU profilini fayla proqram vasitəsilə yazmaq üçün:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// profil ediləcək kod
}
Profiləri analiz etmək üçün go tool pprof əmri istifadə olunur.