J'utilise cProfile maintenant mais je trouve fastidieux d'écrire du code pstats juste pour interroger les données statistiques.
Je recherche un outil visuel qui me montre ce que fait mon code Python 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 cela?
- Serait dtrace aide?
Je connais KCachegrind pour Linux, mais je préférerais quelque chose que je puisse exécuter sur Windows / Mac sans installer KDE.
python
user-interface
profiling
profiler
Frederik
la source
la source
Réponses:
Un ami et moi avons écrit une visionneuse de profil Python appelée SnakeViz qui s'exécute dans un navigateur Web. Si vous utilisez déjà avec succès RunSnakeRun SnakeViz n'ajoutera peut-être pas beaucoup de valeur, mais SnakeViz est beaucoup plus facile à installer.
Edit: SnakeViz prend en charge Python 2 et 3 et fonctionne sur tous les principaux systèmes.
la source
Je ne connais que RunSnakeRun .
Il y a quelque temps, on a également parlé 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 ne soit plus maintenu et qu'il ne prend pas en charge Python 3.
la source
J'utilise gprof2dot.py. Le résultat ressemble à ceci . J'utilise ces commandes:
Vous devez installer graphviz et gprof2dot.py . Vous aimerez peut-être un script shell pratique .
la source
Spyder fournit également une jolie interface graphique pour cProfile:
la source
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/
la source
Cette personne a créé un profil graphique, décrit ici . Peut-être pourriez-vous vous en servir comme point de départ pour votre propre travail.
la source
KCacheGrind inclut une version appelée QCacheGrind qui fonctionne sur Mac OS X et Windows .
la source
apt-get install kcachegrind
installer seulement 3 bibliothèques liées à KDE.apt install kcachegrind
souhaite installer 102 packages, y compris ~ 40 bibliothèques KDE.ubuntu:xenial
il peut y en avoir trois fois plus, mais c'est pour un environnement de développement et je le vois à peine comme un problème. Etapt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends kcachegrind | grep kde | grep Depends | sort -u | wc -l
dit en fait juste 13.Essayez Snakeviz. Très facile à installer (via pip) et basé sur un navigateur.
https://jiffyclub.github.io/snakeviz/
la source
Python Call Graph génère des images très similaires à celles de la réponse de maxy . Il montre également le temps total pour chaque fonction, pour une raison quelconque, il n'est pas reflété dans les graphiques d'exemple.
la source
J'ai écrit un outil de visualisation basé sur un navigateur, profile_eye , qui fonctionne sur la sortie de gprof2dot .
gprof2dot est excellent pour gérer de nombreuses sorties d'outils de profilage et fait un excellent travail pour le placement des éléments graphiques. Le rendu final est un graphique statique, souvent très encombré.
En utilisant d3.js, il est possible de supprimer une grande partie de cet encombrement, grâce à la décoloration relative des éléments non focalisés, des info-bulles et une distorsion fisheye .
À titre de comparaison, voir la visualisation par profile_eye de l' exemple canonique utilisé par gprof2dot . Pour Python en particulier, consultez un exemple de sortie cProfile .
la source
Considérez pyflame + flammegraph
Pyflame: Un Profiler Ptracing Pour Python + Flamegraph
https://github.com/uber/pyflame
Vous pouvez suivre un processus python en cours d'exécution à l'aide de pyflame.
la source
J'ai utilisé du plop et je l'ai trouvé très léger. Donne un aperçu rapide de la performance.
la source