94 votes

Est-il un visual profiler pour Python?

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 est en train de faire en termes de temps CPU et de la mémoire de l'allocation.

Voici quelques exemples tirés du monde Java sont visualvm et JProfiler.

  • Fait quelque chose comme ça existent?
  • Est-il une IDE qui fait cela?
  • Serait dtrace aider?

Je sais à propos de KCachegrind pour Linux, mais je préfère quelque chose que je peux exécuter sur Windows/Mac sans installation de KDE.

80voto

jiffyclub Points 161

Un ami et moi avons écrit un Python profile viewer appelé SnakeViz qui s'exécute dans un navigateur web. Si vous êtes déjà avec succès à l'aide de RunSnakeRun SnakeViz peut pas ajouter beaucoup de valeur, mais SnakeViz est beaucoup plus facile à installer.

41voto

nikow Points 8887

Je ne suis au courant de RunSnakeRun.

Il y avait aussi parlé il y a quelques temps sur un profiler intégré dans PyDev (Eclipse), mais je ne sais pas si ça va jamais voir la lumière du jour.

Mise à jour: Malheureusement, il semble que RunSnakeRun n'est plus maintenu, et il ne prend pas en charge Python 3.

14voto

maxy Points 1068

J'utilise gprof2dot.py. Le résultat a l'air comme ça. 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, comme une commodité d'un script shell.

8voto

jsexauer Points 293

Spyder offre également une très jolie interface graphique pour cProfile:

enter image description here

4voto

Paul McGuire Points 24790

Cette personne a créé un profil graphique, décrit ici. Peut-être que vous pourriez l'utiliser comme un point de départ pour votre propre travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X