Middle
Comment intégrer le profileur standard dans votre application Go?
sobes.tech IA
Réponse de l'IA
Le paquet net/http/pprof fournit des gestionnaires HTTP pour les données de profilage.
Importez-le:
import (
"net/http"
_ "net/http/pprof" // Il est important d'utiliser '_' pour l'initialisation avec effet secondaire
)
Lancez un serveur HTTP dans une goroutine séparée:
go func() {
// Démarrer le serveur à l'adresse locale et au port standard pprof
if err := http.ListenAndServe("localhost:6060", nil); err != nil {
// Gérer l'erreur de démarrage du serveur, par exemple en journalisant
// log.Printf("échec du serveur pprof : %v", err)
}
}()
Vous pouvez maintenant accéder aux données de profilage à l'adresse http://localhost:6060/debug/pprof/.
Principaux points de terminaison disponibles:
/debug/pprof/: Page principale avec la liste des profils disponibles./debug/pprof/heap: Profil du tas./debug/pprof/goroutine: Profil des goroutines actives./debug/pprof/block: Profil des blocages./debug/pprof/threadcreate: Profil de création de threads du système d'exploitation./debug/pprof/cmdline: Ligne de commande de l'application./debug/pprof/profile: Profil CPU (par défaut, collecte des données pendant 30 secondes)./debug/pprof/trace: Profil de traçage d'exécution (par défaut, collecte des données pendant 1 seconde).
Pour analyser les profils CPU, heap et blocages, utilisez généralement l'outil go tool pprof:
go tool pprof http://localhost:6060/debug/pprof/profile # Profil CPU pendant 30 secondes
go tool pprof http://localhost:6060/debug/pprof/heap # Profil du tas
Pour analyser la trace d'exécution, utilisez l'outil go tool trace:
go tool trace http://localhost:6060/debug/pprof/trace
Important : Souvenez-vous de la sécurité et ne pas ouvrir le port pprof au public sans autorisation en production.