Criação de perfis de CPU com pprof
Colete e visualize perfis de CPU
Criação de perfis de CPU com pprof é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
O que é pprof?
net/http/pprof e o pacote runtime/pprof expõem dados de perfilamento que mostram onde o programa gasta tempo de CPU. A CLI go tool pprof analisa os perfis.
Ponto de acesso HTTP do pprof
Importe _ "net/http/pprof" para registrar pontos de acesso de perfilamento em /debug/pprof/ em um servidor HTTP existente.
import _ "net/http/pprof"
go func() {
log.Println(http.ListenAndServe(":6060", nil))
}()Capturando um perfil de CPU
Capture 30 segundos de perfil de CPU pelo ponto de acesso HTTP:
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30Perfilamento de CPU baseado em arquivo
Para programas sem um servidor HTTP, utilize runtime/pprof para gravar um arquivo de perfil:
f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workloadPerfilamento em testes
Execute os testes com os sinalizadores -cpuprofile e -memprofile para criar um perfil sob uma carga de testes realista:
go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...Modo interativo da ferramenta go tool pprof
Abra o perfil e explore-o com comandos interativos:
go tool pprof cpu.prof
(pprof) top # top functions by CPU time
(pprof) list main # annotated source
(pprof) web # call graph in browserGráfico de chamas
Gere um gráfico de chamas (requer graphviz) com -http=:8080 para obter uma interface web interativa:
go tool pprof -http=:8080 cpu.profInterpretando a saída de top
top mostra as funções ordenadas pelo tempo próprio (tempo gasto na função) e pelo tempo acumulado (incluindo as funções chamadas). Concentre-se nas funções com alto tempo próprio para encontrar oportunidades diretas de otimização.
Perfil de rotinas Go
O ponto de acesso /debug/pprof/goroutine mostra todos os rastreamentos de pilha das rotinas Go. Utilize-o para detectar vazamentos de rotinas Go ou rotinas Go bloqueadas.
go tool pprof http://localhost:6060/debug/pprof/goroutinePerfilamento contínuo
Para sistemas em produção, utilize serviços de perfilamento contínuo (Pyroscope, Datadog, Google Cloud Profiler) para capturar perfis sem interromper o serviço.
pprof na integração contínua
Compare os perfis de duas versões do código para detectar regressões de desempenho antes que elas cheguem à produção.
Verificação rápida
O que representa a coluna "self" na saída de top do pprof?
Recapitulação: perfilamento de CPU com pprof
Pontos principais:
- Importe net/http/pprof para obter um ponto de acesso HTTP; runtime/pprof para trabalhar com arquivos
- go tool pprof -http=:8080 para obter a interface de gráfico de chamas
- top: tempo próprio = custo direto; acumulado = custo total, incluindo as funções chamadas
- go test -cpuprofile para perfilamento de avaliações de desempenho
Perguntas Frequentes
A aula “Criação de perfis de CPU com pprof” é grátis?
Sim — o texto completo de “Criação de perfis de CPU com pprof” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Criação de perfis de CPU com pprof”?
Colete e visualize perfis de CPU Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Criação de perfis de CPU com pprof”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Escrevendo benchmarks com testing.B
- Criação de perfis de CPU com pprof
- Criação de perfis de heap e alocações
- Rastreamento de execução