0Pricing
Go Academy · Aula

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=30

Perfilamento 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 workload

Perfilamento 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 browser

Grá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.prof

Interpretando 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/goroutine

Perfilamento 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

  1. Escrevendo benchmarks com testing.B
  2. Criação de perfis de CPU com pprof
  3. Criação de perfis de heap e alocações
  4. Rastreamento de execução
← Voltar para Go Academy