Middle
Πώς ενσωματώνετε τον προφίλερ standard στην εφαρμογή σας σε Go;
sobes.tech AI
Απάντηση από AI
Το πακέτο net/http/pprof παρέχει χειριστές HTTP για δεδομένα προφίλ.
Εισάγετέ το:
import (
"net/http"
_ "net/http/pprof" // Είναι σημαντικό να χρησιμοποιείτε '_' για αρχικοποίηση με παρενέργειες
)
Ξεκινήστε έναν διακομιστή HTTP σε μια ξεχωριστή goroutine:
go func() {
// Εκκινήστε τον διακομιστή στη τοπική διεύθυνση και στην προεπιλεγμένη θύρα pprof
if err := http.ListenAndServe("localhost:6060", nil); err != nil {
// Διαχειριστείτε το σφάλμα εκκίνησης του διακομιστή, π.χ. καταγραφή
// log.Printf("ο διακομιστής pprof απέτυχε: %v", err)
}
}()
Τώρα μπορείτε να αποκτήσετε πρόσβαση στα δεδομένα προφίλ στο http://localhost:6060/debug/pprof/.
Κύρια διαθέσιμα endpoints:
/debug/pprof/: Αρχική σελίδα με λίστα διαθέσιμων προφίλ./debug/pprof/heap: Προφίλ σωρού./debug/pprof/goroutine: Προφίλ ενεργών goroutines./debug/pprof/block: Προφίλ μπλοκαρισμάτων./debug/pprof/threadcreate: Προφίλ δημιουργίας νήματος OS./debug/pprof/cmdline: Γραμμή εντολών της εφαρμογής./debug/pprof/profile: CPU προφίλ (συλλέγει δεδομένα για 30 δευτερόλεπτα από προεπιλογή)./debug/pprof/trace: Προφίλ διαδρομής εκτέλεσης (συλλέγει δεδομένα για 1 δευτερόλεπτο από προεπιλογή).
Για ανάλυση CPU, σωρού και μπλοκαρισμάτων, συνήθως χρησιμοποιείται το εργαλείο go tool pprof:
go tool pprof http://localhost:6060/debug/pprof/profile # CPU προφίλ για 30 δευτερόλεπτα
go tool pprof http://localhost:6060/debug/pprof/heap # Προφίλ σωρού
Για ανάλυση διαδρομής εκτέλεσης, χρησιμοποιείται το εργαλείο go tool trace:
go tool trace http://localhost:6060/debug/pprof/trace
Σημαντικό: Θυμηθείτε την ασφάλεια και μην ανοίγετε την πόρτα pprof στο κοινό χωρίς εξουσιοδότηση σε παραγωγή.