Y a-t-il un profileur visuel pour Python? [fermé]

j'utilise cProfile maintenant, mais je trouve ça fastidieux à écrire pstats code pour interroger les données de la statistique.

je suis à la recherche d'un outil visuel qui me montre ce que mon code Python fait en termes de temps CPU et d'allocation de mémoire.

quelques exemples du monde Java sont visualvm et JProfiler .

  • est-ce que quelque chose comme ça existe?
  • y a-t-il un IDE qui fait ça?
  • Serait dtrace de l'aide?

je sais À propos de KCachegrind Pour Linux, mais je préférerais quelque chose que je peux exécuter sur Windows/Mac sans installer KDE.

84
demandé sur Community 2010-07-31 20:37:13

12 réponses

un ami et moi avons écrit un visualiseur de profil Python appelé SnakeViz qui fonctionne dans un navigateur web. Si vous utilisez déjà avec succès RunSnakeRun SnakeViz peut ne pas ajouter beaucoup de valeur, mais SnakeViz est beaucoup plus facile à installer.

Edit: SnakeViz supporte Python 2 et 3 et fonctionne sur tous les principaux systèmes.

69
répondu jiffyclub 2015-09-21 22:47:38

je suis seulement au courant de RunSnakeRun .

il y a aussi eu quelques discussions il y a quelque temps à propos d'un profileur intégré dans PyDev (Eclipse), mais je ne sais pas si cela verra un jour le jour.

mise à jour: malheureusement, il semble que RunSnakeRun n'est plus maintenu, et Qu'il ne supporte pas Python 3.

40
répondu nikow 2014-06-20 08:13:54

j'utilise gprof2dot.py. Le résultat ressemble à comme ceci . J'utilise ces commandes:

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

Vous avez besoin de graphviz et gprof2dot.py installé. Vous pourriez aimer un script shell de commodité .

14
répondu maxy 2014-04-20 07:42:54

Spyder fournit également une jolie interface graphique pour cProfile:

enter image description here

8
répondu jsexauer 2016-05-27 13:21:40

cette personne a créé un profil graphique, décrit ici . Vous pourriez peut-être vous en servir comme point de départ pour votre propre travail.

4
répondu PaulMcG 2010-08-01 02:04:01

Python Tools for Visual Studio contient un profileur graphique très bien fait: http://www.youtube.com/watch?v=VCx7rlPyEzE&hd=1

http://pytools.codeplex.com/

4
répondu Jake 2013-05-17 13:39:21

KCacheGrind comprend une version appelée QCacheGrind qui fonctionne sur Mac OS X et à la Windows .

3
répondu akaihola 2015-09-22 05:08:07

essayez Snakeviz. Très facile à installer (via pip) et il est basé sur le navigateur.

https://jiffyclub.github.io/snakeviz /

2
répondu BangTheBank 2015-08-12 10:07:38

j'ai écrit un outil de visualisation basé sur un navigateur, profile_eye , qui fonctionne sur la sortie de gprof2dot .

gprof2dot est excellent pour grokking de nombreuses sorties d'outil de profilage, et fait un excellent travail au placement d'éléments de graphisme. Le rendu final est statique graphique, qui est souvent très encombré.

utilisant d3.js il est possible d'enlever beaucoup de ce désordre, par décoloration relative des éléments non focalisés, du bout des outils, et un Fisheye distortion .

à titre De comparaison, voir profile_eye de visualisation du de la canonique exemple utilisé par gprof2dot . Pour Python en particulier, voir un exemple de sortie cProfile .

1
répondu Ami Tavory 2015-05-17 06:07:03

Consider pyflame + flamegraph

Pyflame: a Ptracing Profiler For Python + flamegraph

https://github.com/uber/pyflame

vous pouvez tracer vers un processus Python en cours d'exécution en utilisant pyflame.

1
répondu McKelvin 2016-12-21 10:12:26

j'ai utilisé plop et je l'ai trouvé très léger. Donne un aperçu rapide de la perf.

0
répondu auny 2012-08-06 12:17:42