PPROF es una herramienta para la visualización y el análisis de los datos de perfiles.
PPROF lee una colección de muestras de perfiles en el perfil. Formato de proposte y genera informes para visualizar y ayudar a analizar los datos. Puede generar informes de texto y gráficos (mediante el uso del paquete de visualización DOT).
perfil.proto es un búfer de protocolo que describe un conjunto de llamadas e información de simbolización. Un uso común es representar un conjunto de llamadas muestreadas del perfil estadístico. El formato se describe en el archivo proto/perfil.proto. Para obtener detalles sobre los buffers de protocolo, consulte https://developers.google.com/protocol-buffers
Los perfiles se pueden leer desde un archivo local o sobre HTTP. Se pueden agregar o comparar múltiples perfiles del mismo tipo.
Si las muestras de perfil contienen direcciones de la máquina, PPROF puede simbolizarlas mediante el uso de las herramientas nativas de binutils (ADR2LINE y NM).
Este no es un producto oficial de Google.
Prerrequisitos:
GO Kit de desarrollo de una versión compatible. Siga estas instrucciones para preparar el medio ambiente.
GraphViz: http://www.graphviz.org/ opcional, utilizado para generar visualizaciones gráficas de perfiles
Para construirlo e instalarlo:
go install github.com/google/pprof@latest
El binario se instalará $GOPATH/bin
( $HOME/go/bin
por defecto).
PPROF puede leer un perfil de un archivo o directamente desde un servidor a través de HTTP. Especifique las entradas de perfil en la línea de comando y use opciones para indicar cómo formatear el informe.
% 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
Si no se especifica ninguna opción de formato de salida, PPROF se ejecuta en modo interactivo, donde lee el perfil y acepta comandos interactivos para la visualización y el refinamiento del 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.
Si se especifica el indicador -http
, PPROF inicia un servidor web en el puerto host especificado que proporciona una interfaz interactiva basada en la web para PPROF. El host es opcional y es "localhost" de forma predeterminada. El puerto es opcional y es un puerto aleatorio disponible de forma predeterminada. -http=":"
inicia un servidor localmente en un puerto aleatorio.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
El comando anterior debe abrir automáticamente su navegador web en la página correcta; Si no, puede visitar manualmente el puerto especificado en su navegador web.
PPROF puede leer archivos perf.data
generados por la herramienta Linux PERF utilizando el programa perf_to_profile
del paquete perf_data_converter.
Para ver el desmontaje de los perfiles recopilados de los programas GO compilados como ejecutables de Windows, el ejecutable debe construirse con go build -buildmode=exe
. Se deben instalar LLVM o GCC, por lo que las herramientas requeridas como addr2line
y nm
están disponibles para pprof
.
Consulte Doc/ReadMe.MD para obtener una documentación más detallada del usuario final.
Ver contribuyente.md para la documentación de contribución.
Consulte Proto/ReadMe.md para obtener una descripción del formato perfil.proto.