Maison >développement back-end >Tutoriel Python >Comment puis-je profiler mon script Python pour détecter les goulots d'étranglement en termes de performances ?

Comment puis-je profiler mon script Python pour détecter les goulots d'étranglement en termes de performances ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-24 02:55:17873parcourir

How Can I Profile My Python Script to Find Performance Bottlenecks?

Profilage de scripts Python avec cProfile

Question :

Optimiser le code Python peut être un défi. Comment pouvez-vous profiler le temps d'exécution d'un script Python pour identifier les goulots d'étranglement ?

Réponse :

Python est équipé d'un puissant profileur appelé cProfile. Il fournit une vue complète des temps d'exécution, notamment :

  • Durée totale d'exécution
  • Temps passé dans chaque fonction
  • Fréquence des appels de fonction

Utilisation de cProfile :

cProfile peut être invoqué dans de plusieurs manières :

  • Depuis votre code :
import cProfile
cProfile.run('foo()')
  • Depuis l'interprète :
python -m cProfile myscript.py
  • Pendant l'exécution d'un module :
python -m cProfile -m mymodule

Fichier batch personnalisé :

Pour simplifier le processus, vous pouvez créer un fichier batch nommé 'profile.bat' :

python -m cProfile %1

Ensuite, exécutez simplement votre script avec le fichier (remplacez euler048.py par votre script):

profile euler048.py

Sortie :

cProfile génère une sortie détaillée avec des informations telles que :

  • Total des appels de fonction
  • Temps CPU
  • Cumulatif time
  • Nom de fichier et numéro de ligne de chaque fonction

Ressources supplémentaires :

  • [Tutoriel de profilage Python sur PyCon 2013](https://www.youtube.com/watch?v=2mcVypDt50A)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn