Outils pour utilisateurs

Outils du site


python:optimisation_python

**Ceci est une ancienne révision du document !**

Optimisation en Python

L'optimisation consiste à rendre plus rapides ou plus efficaces des portions de codes. C'est une démarche délicate et parfois chronophage.

Il faut parfois évaluer le coût de l'optimisation au regard du bénéfice obtenu.

Attention à l'optimisation prématurée

L'optimisation est une démarche qui fait suite à la constatation un problème de performance. Il peut être tentant de le faire pendant l'écriture du code. L'expérience cumulée de plusieurs génération de développeur montre que c'est une erreur.

Une règle de génie logiciel dit :

Optimization is Evil

Cela signifie que chercher l'optimisation avant de s'être assurer que le code fait bien ce que l'on attend de lui est contre-productif et met en péril la maintenabilité du code.

Le bon outil pour le bon usage

Une exception notable est la manipulation d'ensembles de valeurs qui peuvent devenir conséquents avec les seules types python (dict, list, …).

Pour le calcul, Python n'est pas un outil très pertinent. Il est nécessaire de s'appuyer sur des librairies spécialisées comme http://www.numpy.org/ qui sont écrites en C++.

Les anti-patterns

TBD: mettre ici les doubles boucles python

Les solutions

TBD: refaire le benchmarking

Numba

https://github.com/numba/numba

TBD: Expliquer le contexte

from numba import jit
 
@jit
def ma_function_a_optimiser():
   ...
python/optimisation_python.1511538062.txt.gz · Dernière modification: 2017/11/24 16:41 par marc dexet