Senior
Πώς να συνδέσετε έναν profiler στο 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— κατάσταση των goroutines
Για να αποθηκεύσετε το CPU προφίλ σε αρχείο προγραμματιστικά:
import (
"os"
"runtime/pprof"
)
func main() {
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// κώδικας προς προφίλ
}
Για ανάλυση προφίλ, χρησιμοποιείται η εντολή go tool pprof.