raspberry interfaz instalar gui grafica python user-interface profiling profiler

interfaz - ¿Hay un perfilador visual para Python?



tkinter python (12)

Ahora uso cProfile pero me resulta tedioso escribir código de pstats solo para consultar los datos estadísticos.

Estoy buscando una herramienta visual que me muestre qué está haciendo mi código Python en términos de tiempo de CPU y asignación de memoria.

Algunos ejemplos del mundo de Java son visualvm y JProfiler .

  • Existe algo como esto?
  • ¿Hay un IDE que hace esto?
  • ¿ dtrace ayudaría?

Conozco KCachegrind para Linux, pero preferiría algo que pueda ejecutar en Windows / Mac sin instalar KDE.


Considera el grafo pirflama +

Pyflame: un analizador de seguimiento para Python + flareógrafo

https://github.com/uber/pyflame

Puede rastrear hacia un proceso python en ejecución usando pyflame.


Esta persona creó un perfil gráfico, que se describe here . Tal vez podrías usar eso como punto de partida para tu propio trabajo.





Solo estoy al tanto de RunSnakeRun .

También se habló hace algún tiempo sobre un generador de perfiles integrado en PyDev (Eclipse), pero no sé si eso alguna vez verá la luz.

Actualización: Desafortunadamente, parece que RunSnakeRun ya no se mantiene y no es compatible con Python 3.


Un amigo y yo hemos escrito un visor de perfil de Python llamado SnakeViz que se ejecuta en un navegador web. Si ya está utilizando RunSnakeRun con RunSnakeRun SnakeViz puede no agregar mucho valor, pero SnakeViz es mucho más fácil de instalar.

Editar: SnakeViz admite Python 2 y 3 y funciona en todos los sistemas principales.


Utilicé plop y descubrí que es muy liviano. Da una visión rápida de la perforación.


Yo uso gprof2dot.py. El resultado se ve así . Yo uso esos comandos:

python -m cProfile -o profile.dat my_program.py gprof2dot.py -f pstats profile.dat | dot -Tpng -o profile.png

Necesita graphviz y gprof2dot.py instalados. Es posible que desee un script de shell conveniente .


Python Call Graph genera imágenes muy similares a las de la respuesta de maxy . También muestra el tiempo total para cada función, por alguna razón no se refleja en los gráficos de ejemplo.


gprof2dot herramienta de visualización basada en navegador, profile_eye , que funciona en la salida de gprof2dot .

gprof2dot es excelente para obtener muchas salidas de herramientas de creación de perfiles, y hace un gran trabajo en la colocación de elementos gráficos. La representación final es un gráfico estático, que a menudo es muy abarrotado.

Usando d3.js es posible eliminar gran parte de ese desorden, a través del desvanecimiento relativo de elementos desenfocados, información sobre herramientas y una distorsión de ojo de pez .

Para realizar una comparación, consulte la visualización de gprof2dot . Para Python en particular, vea un ejemplo de salida cProfile .


Spyder también proporciona una bonita interfaz gráfica para cProfile: