Un profiler de muestreo para programas Python que se conecta a procesos en ejecución sin modificar el código ni reiniciarlos.
google/pprof
Herramienta de línea de comandos y web para visualizar y analizar datos de perfiles en formato profile.proto.
- Estrellas
- 9,323
- Forks
- 686
- Issues abiertos
- 64
- Último commit
- anteayer
¿Qué es?
pprof lee conjuntos de muestras de perfiles en formato profile.proto y genera informes que ayudan a los desarrolladores a entender dónde se consume tiempo o memoria. Genera informes de texto ordenados por intensidad, grafos de llamadas renderizados con Graphviz y una shell interactiva o una interfaz web para explorar perfiles.
Los perfiles se pueden cargar desde un archivo local o descargar por HTTP, y es posible agregar o comparar varios perfiles del mismo tipo. Si un perfil contiene direcciones de máquina sin procesar, pprof puede simbolizarlas con las herramientas nativas de binutils addr2line y nm, siempre que se proporcione el binario del programa. También puede leer archivos perf.data de Linux perf mediante un conversor complementario.
Instálalo con go install github.com/google/pprof@latest. Graphviz es opcional y solo se necesita para generar gráficos. El proyecto no es un producto oficial de Google.
Funciones clave
- 01Genera informes de texto ordenados por intensidad a partir de datos de perfiles.
- 02Genera grafos de llamadas SVG renderizados con Graphviz.
- 03Ofrece una shell de comandos interactiva y una interfaz web accesible desde el navegador.
- 04Lee perfiles desde archivos locales o mediante HTTP.
- 05Agrega o compara varios perfiles del mismo tipo.
- 06Simboliza direcciones con addr2line y nm.
Casos de uso
- Encontrar los puntos críticos de consumo de CPU o memoria en un servicio Go a partir de un perfil recopilado.
- Visualizar los grafos de llamadas de un programa lento para identificar qué rutas consumen más tiempo.
- Comparar perfiles anteriores y posteriores a un cambio de código para medir su impacto.
- Analizar grabaciones de Linux perf convirtiéndolas al formato profile.proto.
Inicio rápido
- 1
Instala el kit de desarrollo de Go y Graphviz (opcional, para obtener resultados gráficos)
- 2
Compila e instala pprof con Go
go install github.com/google/pprof@latest - 3
Genera un informe de texto del perfil ordenado por nivel de actividad
pprof -top [main_binary] profile.pb.gz
Antes de usarlo
- Los resultados gráficos requieren una instalación independiente de Graphviz.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pprof?
- Herramienta de línea de comandos y web para visualizar y analizar datos de perfiles en formato profile.proto. pprof lee conjuntos de muestras de perfiles en formato profile.proto y genera informes que ayudan a los desarrolladores a entender dónde se consume tiempo o memoria. Genera informes de texto ordenados por intensidad, grafos de llamadas renderizados con Graphviz y una shell interactiva o una interfaz web para explorar perfiles.
- ¿pprof es gratuito? ¿Qué licencia tiene?
- pprof es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pprof sigue mantenido?
- Mantenimiento activo. El último commit de pprof fue el 5 nov 2026.
- ¿Para qué puedo usar pprof?
- Encontrar los puntos críticos de consumo de CPU o memoria en un servicio Go a partir de un perfil recopilado. Visualizar los grafos de llamadas de un programa lento para identificar qué rutas consumen más tiempo. Comparar perfiles anteriores y posteriores a un cambio de código para medir su impacto. Analizar grabaciones de Linux perf convirtiéndolas al formato profile.proto.
- ¿Cómo se instala pprof?
- Instala el kit de desarrollo de Go y Graphviz (opcional, para obtener resultados gráficos) Compila e instala pprof con Go: go install github.com/google/pprof@latest Genera un informe de texto del perfil ordenado por nivel de actividad: pprof -top [main_binary] profile.pb.gz
- ¿Dónde consigo pprof?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/google/pprof
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un tracer de Python de bajo impacto que registra llamadas a funciones y muestra la ejecución del código como una línea de tiempo interactiva.
Profiler de muestreo de bajo impacto para Java que captura perfiles de CPU, asignaciones, bloqueos y memoria nativa sin sesgo de safepoints.
Herramienta gratuita para Windows que permite aislar problemas de rendimiento de CPU y memoria, con funciones especiales para investigar código del runtime de .NET.
Un profiler de pila de llamadas para Python que muestra en qué partes de tu código se va el tiempo, con formatos de salida para consola, HTML y otros.
Plataforma de profiling continuo que recopila perfiles de CPU, memoria y E/S de aplicaciones en ejecución para identificar el código lento hasta llegar a la línea concreta.