Sobes.tech
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 στο κοινό χωρίς εξουσιοδότηση σε παραγωγή.