O PPROF é uma ferramenta para visualização e análise de dados de perfil.
O PPROF lê uma coleção de amostras de criação de perfil em perfil.proto formato e gera relatórios para visualizar e ajudar a analisar os dados. Ele pode gerar relatórios de texto e gráfico (através do uso do pacote de visualização de pontos).
Profile.Proto é um buffer de protocolo que descreve um conjunto de informações de calls e informações de simbolização. Um uso comum é representar um conjunto de pilhas de chamadas amostradas do perfil estatístico. O formato é descrito no arquivo proto/perfil.proto. Para detalhes sobre buffers de protocolo, consulte https://developers.google.com/protocol-buffers
Os perfis podem ser lidos a partir de um arquivo local ou sobre HTTP. Vários perfis do mesmo tipo podem ser agregados ou comparados.
Se as amostras de perfil conterem endereços da máquina, o PPROF poderá simbolizá -las através do uso das ferramentas nativas do Binutils (Addr2Line e NM).
Este não é um produto oficial do Google.
Pré -requisitos:
Kit de desenvolvimento Go de uma versão suportada. Siga estas instruções para preparar o ambiente.
GraphViz: http://www.graphviz.org/ opcional, usado para gerar visualizações gráficas de perfis
Para construí -lo e instalá -lo:
go install github.com/google/pprof@latest
O binário será instalado $GOPATH/bin
( $HOME/go/bin
por padrão).
O PPROF pode ler um perfil de um arquivo ou diretamente de um servidor via HTTP. Especifique as entradas do perfil na linha de comando e use as opções para indicar como formatar o relatório.
% pprof -top [main_binary] profile.pb.gz Where main_binary: Local path to the main program binary, to enable symbolization profile.pb.gz: Local path to the profile in a compressed protobuf, or URL to the http service that serves a profile.
pprof -web [main_binary] profile.pb.gz
Se nenhuma opção de formatação de saída for especificada, o PPROF será executado no modo interativo, onde lê o perfil e aceita comandos interativos para visualização e refinamento do perfil.
pprof [main_binary] profile.pb.gz This will open a simple shell that takes pprof commands to generate reports. Type 'help' for available commands/options.
Se o sinalizador -http
for especificado, o PPROF iniciará um servidor da Web no host especificado: porta que fornece uma interface interativa baseada na Web ao PPROF. O host é opcional e é "localhost" por padrão. A porta é opcional e é uma porta disponível aleatória por padrão. -http=":"
inicia um servidor localmente em uma porta aleatória.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
O comando anterior deve abrir automaticamente o navegador da web na página certa; Caso contrário, você pode visitar manualmente a porta especificada no seu navegador da web.
O PPROF pode ler os arquivos perf.data
gerados pela ferramenta Linux Perf usando o programa perf_to_profile
no pacote perf_data_converter.
Para visualizar a desmontagem dos perfis coletados dos programas GO compilados como executáveis do Windows, o executável deve ser criado com go build -buildmode=exe
. LLVM ou GCC devem ser instalados; portanto, ferramentas necessárias como addr2line
e nm
estão disponíveis para o pprof
.
Consulte Doc/Readme.md para obter uma documentação mais detalhada do usuário final.
Consulte Contribuindo.md para documentação de contribuição.
Consulte Proto/README.MD para obter uma descrição do formato perfil.proto.