Profilazione della CPU con pprof
Raccogliere e visualizzare i profili della CPU
Profilazione della CPU con pprof è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
Che cos'è pprof
net/http/pprof e il package runtime/pprof espongono dati di profiling che mostrano dove il programma impiega il tempo della CPU. La CLI go tool pprof analizza i profili.
Endpoint HTTP di pprof
Importi _ "net/http/pprof" per registrare gli endpoint di profiling nel percorso /debug/pprof/ su un server HTTP esistente.
import _ "net/http/pprof"
go func() {
log.Println(http.ListenAndServe(":6060", nil))
}()Acquisire un profilo CPU
Acquisisca 30 secondi di profilo CPU tramite l'endpoint HTTP:
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30Profiling CPU basato su file
Per i programmi privi di un server HTTP, usi runtime/pprof per scrivere un file di profilo:
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workloadProfiling nei test
Esegua i test con i flag -cpuprofile e -memprofile per eseguire il profiling con un carico di test realistico:
go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...Modalità interattiva di go tool pprof
Apra il profilo ed esplori i dati usando comandi interattivi:
go tool pprof cpu.prof
(pprof) top # top functions by CPU time
(pprof) list main # annotated source
(pprof) web # call graph in browserFlame graph
Generi un flame graph (richiede graphviz) con -http=:8080 per un'interfaccia web interattiva:
go tool pprof -http=:8080 cpu.profInterpretare l'output di top
top mostra le funzioni ordinate per tempo proprio (il tempo trascorso nella funzione) e tempo cumulativo (incluso quello delle funzioni chiamate). Si concentri sulle funzioni con tempo proprio elevato per individuare opportunità di ottimizzazione diretta.
Profilo delle goroutine
L'endpoint /debug/pprof/goroutine mostra tutte le tracce dello stack delle goroutine. Lo usi per rilevare goroutine perse o bloccate.
go tool pprof http://localhost:6060/debug/pprof/goroutineProfiling continuo
Per i sistemi in produzione, usi servizi di profiling continuo (Pyroscope, Datadog, Google Cloud Profiler) per acquisire profili senza arrestare il servizio.
pprof nella CI
Confronti i profili di due versioni del codice per rilevare regressioni delle prestazioni prima che arrivino in produzione.
Verifica rapida
Che cosa rappresenta la colonna "self" nell'output di pprof top?
Riepilogo: profiling CPU con pprof
Punti chiave:
- Importi net/http/pprof per l'endpoint HTTP; runtime/pprof per i file
- go tool pprof -http=:8080 per l'interfaccia del flame graph
- top: tempo proprio = costo diretto; cumulativo = costo totale incluse le funzioni chiamate
- go test -cpuprofile per il profiling dei benchmark
Impara Go con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 51
- Lezioni
- 203
Domande Frequenti
La lezione «Profilazione della CPU con pprof» è gratuita?
Sì — il testo completo di «Profilazione della CPU con pprof» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Profilazione della CPU con pprof»?
Raccogliere e visualizzare i profili della CPU Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Profilazione della CPU con pprof»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Scrivere benchmark con testing.B
- Profilazione della CPU con pprof
- Profilazione dell'heap e delle allocazioni
- Tracciamento dell'esecuzione