User Tools

Site Tools


python_tuning

This is an old revision of the document!


Tuning Python

En tant que langage interprété, Python est la plupart du temps légèrement moins performant que des langages tels que le C. Cependant, sur des traitements non-chargeants pour la machine concernée (c'est-à-dire des traitements qui entrainent une charge loin des limites de la machine, et donc négligeables), ce défaut de performance est invisible.

Sur des traitements chargeants, l'implémentation va être importante, en utilisant des patterns de programmation adéquats, on va pouvoir se rapprocher des performances du C. Il existe même des modules permettant d'inclure du code C directement au sein du code Python, ce qui va faire tendre les performances vers celles du code C (avec un overhead se comptant en microseconde par rapport à du code C compilé).

Dans tous les cas, le processus d'optimisation des performances se déroule comme suit:

  1. Avoir du code opérationnel (“de production”). (“Early tuning is the source of all evil.”)
  2. S'assurer que son temps d'exécution ou sa charge mémoire sont critiques. (Pas besoin d'optimiser un traitement peu utilisé ou déjà efficace)
  3. Profiler le code pour trouver les goulots d'étranglement.
  4. Optimiser le code concerné.
  5. S'assurer de la non-regression.

Performance python (en général)

Profilage

Techniques d'optimisation

python_tuning.1286553159.txt.gz · Last modified: 2010/10/08 17:52 by ginko