Senior
Go'da profilerni qanday ulash mumkin? Profilni qanday olish mumkin?
sobes.tech AI
AIdan javob
Go tilida profiling uchun net/http/pprof va runtime/pprof paketlari ishlatiladi.
Profilerni HTTP-serverga ulash uchun, faqat import qilish kifoya:
import _ "net/http/pprof"
va HTTP-serverni ishga tushirish, masalan:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// dastur kodining qolgan qismi
}
Ishga tushgach, profiling qilish uchun endpointlarga murojaat qilish mumkin:
http://localhost:6060/debug/pprof/profile— CPU profiling (standart 30 sekund)http://localhost:6060/debug/pprof/heap— xotira profilinghttp://localhost:6060/debug/pprof/goroutine— goroutine holati
CPU profilingni faylga dasturiy yozish uchun:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// profiling qilish kerak bo'lgan kod
}
Profilarni tahlil qilish uchun go tool pprof komandasi ishlatiladi.