Profilage du CPU avec pprof
Collecter et visualiser des profils du CPU
Profilage du CPU avec pprof est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.
Qu’est-ce que pprof ?
net/http/pprof et le paquet runtime/pprof exposent des données de profilage qui indiquent où votre programme passe son temps processeur. L’outil en ligne de commande go tool pprof analyse les profils.
Point d’accès HTTP pprof
Importez _ "net/http/pprof" pour enregistrer les points d’accès de profilage sous /debug/pprof/ sur un serveur HTTP existant.
import _ "net/http/pprof"
go func() {
log.Println(http.ListenAndServe(":6060", nil))
}()Capturer un profil processeur
Capturez 30 secondes de profil processeur via le point d’accès HTTP :
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30Profilage processeur basé sur un fichier
Pour les programmes qui ne possèdent pas de serveur HTTP, utilisez runtime/pprof pour écrire un fichier de profil :
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workloadProfilage des tests
Exécutez les tests avec les options -cpuprofile et -memprofile pour effectuer le profilage sur une charge de test réaliste :
go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...Mode interactif de go tool pprof
Ouvrez le profil et explorez-le avec des commandes interactives :
go tool pprof cpu.prof
(pprof) top # top functions by CPU time
(pprof) list main # annotated source
(pprof) web # call graph in browserGraphe en flammes
Générez un graphe en flammes (graphviz est requis) avec -http=:8080 pour obtenir une interface web interactive :
go tool pprof -http=:8080 cpu.profInterpréter la sortie de top
top affiche les fonctions triées selon leur temps propre (temps passé dans cette fonction) et leur temps cumulé (y compris celui des fonctions appelées). Concentrez-vous sur les fonctions dont le temps propre est élevé pour trouver des possibilités d’optimisation directe.
Profil des goroutines
Le point d’accès /debug/pprof/goroutine affiche toutes les traces de pile des goroutines. Utilisez-le pour détecter les fuites de goroutines ou les goroutines bloquées.
go tool pprof http://localhost:6060/debug/pprof/goroutineProfilage continu
Pour les systèmes en production, utilisez des services de profilage continu (Pyroscope, Datadog, Google Cloud Profiler) afin de capturer des profils sans arrêter le service.
pprof dans l’intégration continue
Comparez les profils de deux versions de votre code pour détecter les régressions de performances avant qu’elles n’atteignent la production.
Vérification rapide
Que représente la colonne « self » dans la sortie top de pprof ?
Récapitulatif : profilage processeur avec pprof
Points clés :
- Importez net/http/pprof pour le point d’accès HTTP ; runtime/pprof pour un fichier
- go tool pprof -http=:8080 pour l’interface du graphe en flammes
- top : le temps propre correspond au coût direct ; le temps cumulé correspond au coût total, y compris celui des fonctions appelées
- go test -cpuprofile pour le profilage des mesures de performances
Questions Fréquemment Posées
La leçon « Profilage du CPU avec pprof » est-elle gratuite ?
Oui — le texte complet de « Profilage du CPU avec pprof » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Profilage du CPU avec pprof » ?
Collecter et visualiser des profils du CPU Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Go Academy ?
Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Profilage du CPU avec pprof » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?
Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Écrire des benchmarks avec testing.B
- Profilage du CPU avec pprof
- Profilage du tas et des allocations
- Traçage de l’exécution