formations/python-perfs/README.md

1.4 KiB
Raw Blame History

Python Performances

Les slides : https://mdk.fr/python-perfs

Description

Destinée aux développeurs Python aguerris, cette formation approche les différents moyens daméliorer les performances dun programme écrit en Python.

Les objectifs

  • Savoir mesurer les performances dun programme et identifier les goulots détranglement.
  • Prendre conscience des impacts des différentes structures de données, de leur complexité algorithmique.
  • Découvrir les différents "JIT" (Just-In-Time compilation) de lécosystème Python.
  • Découvrir la variété des interpréteurs Python et leurs caractéristiques.
  • Entrelacer du code natif et du Python.

Pré-requis

  • Excellente connaissance du langage, du niveau de la formation « Python avancé ».

Programme

Bien choisir sa structure de donnée :

  • comparaison asymptotique,
  • comprendre les implémentations O(1).

Les outils de mesure :

  • Les outils extérieurs à Python (time, hyperfine, …).
  • Configurer sa machine pour avoir des mesures reproductibles.
  • Les outils de la bibliothèque standard (cProfile, pstats, timeit).
  • Les outils tiers (pyperf, snakeviz, Scalene, vprof, …).

Les JIT, compilateurs, et interpréteurs tiers :

  • PyPy, numba, cython, pythran, nuitka, mypyc, pyston, …

Utiliser du code natif pour optimiser ponctuellement :

  • Interfacer du C ou du C++ avec Python en utilisant cython.
  • Rédiger un module Python en C.