Senior
როგორ დავაკავშიროთ პროფაილერი Go-ში? როგორ გადავიღოთ პროფილები?
sobes.tech AI
პასუხი AI-სგან
Go-ში პროფილირებისათვის გამოიყენება პაკეტები net/http/pprof და runtime/pprof.
პროფილერის დაკავშირება HTTP-სერვერთან საკმარისია, თუ იმპორტირებთ:
import _ "net/http/pprof"
და დაიწყებთ HTTP-სერვერის, მაგალითად:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil)
}()
// დანარჩენი კოდი
}
საშუალოდ, პროფილები მიიღება ამ endpoints-ებზე წვდომით:
http://localhost:6060/debug/pprof/profile— CPU პროფილი (ჩამონათვალში 30 წამი)http://localhost:6060/debug/pprof/heap— მეხსიერების პროფილიhttp://localhost:6060/debug/pprof/goroutine— გორუტინების მდგომარეობა
CPU პროფილის ფაილში პროგრამული ჩაწერისთვის:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// პროფილირებადი კოდი
}
პროფილების ანალიზისთვის გამოიყენება go tool pprof ბრძანება.