Profilage rapide des scripts Python

Notez que lorsque je voulais savoir où se trouvait le goulot d'étranglement parce que le script Python était lourd, j'oubliais toujours comment le profiler et le réexaminer.

Profil avec cProfile

Profiler est disponible en standard dans Python 3.

Python Profiler - Documentation Python 3

Il peut y avoir un profileur plus performant, mais cette fois je vais l'utiliser car le but est de le profiler rapidement.

Lors du profilage de l'ensemble du script

$ python -m cProfile -o profile.stats myscript.py

Si `-o est spécifié, le résultat est sorti dans un fichier au lieu de la sortie standard.

Lors du profilage d'une partie seulement du script

myscript.py


import cProfile
import very_slow_function

cProfile.run('very_slow_function()', 'profile.stats')

Enveloppez le processus que vous souhaitez profiler avec cProfile.run. Si un nom de fichier est spécifié dans le deuxième argument, le résultat sera sorti dans un fichier au lieu d'être sorti vers la sortie standard.

Afficher les résultats du profilage avec cProfileV

Le fichier de résultat généré par cProfile est constitué de données binaires et ne peut pas être visualisé tel quel. Il peut être lu en utilisant le module standard pstats, mais je ne me souviens pas comment l'utiliser, donc cette fois je vais naviguer à l'aide d'un outil appelé cProfileV.

Installez cProfileV

$ pip install cprofilev

Une fois installé, vous pouvez utiliser la commande cprofilev.

Utiliser cProfileV

$ cprofilev -f profile.stat

Si vous spécifiez le fichier de résultat avec l'option -f et exécutez la commande cprofilev, le serveur HTTP démarre, vous pouvez donc afficher les résultats du profilage en accédant à http: // localhost: 4000 / depuis votre navigateur.

C'est pratique car vous pouvez trier par le nombre d'exécutions et le temps d'exécution de chaque méthode.

Recommended Posts

Profilage rapide des scripts Python
Importer dynamiquement des scripts en Python
Mise en retrait des scripts python
Autoriser l'exécution rapide des scripts Python dans Cloud Run à l'aide du répondeur
Python
Utilisez des scripts personnalisés Python avec StackStorm
Exécutez des scripts Python de manière synchrone à partir de C #
Vérifier les modules installés à partir du script Python
Exécutez le script Python à partir de Cisco Memorandum_EEM
Comment empaqueter et distribuer des scripts Python
Test WebUI avec Python2.6 + Selenium 2.44.0 - paramètre de profil
Créez rapidement un fichier Excel avec Python #python
Script de pilote pour le calcul paramétrique des scripts Python
Modèle pour l'écriture de scripts batch en python
Essayez rapidement l'API Face de Microsoft en Python
[Python] Créez rapidement une API avec Flask