Description
Cette formation Performances Python vous permettra de comprendre en profondeur comment mesurer, analyser et améliorer l’efficacité de vos programmes Python.
Pendant cette journée, vous apprendrez à :
- Mesurer les performances de vos programmes avec les outils standards et avancés
- Évaluer la complexité algorithmique et choisir la bonne structure de données
- Expérimenter les interpréteurs Python et compilateurs JIT (PyPy, Numba, Cython, etc.)
- Identifier et optimiser les goulots d’étranglement dans votre code
- Intégrer du code C natif pour accélérer ponctuellement vos applications
Public
Cette formation s'adresse aux développeur·euse·s aguerri·e·s au langage Python.
Ils témoignent
LG
Léo G.
Yes We Dev - Our Real Win SAS
05.07.2024
Formation intéressante dont les principes peuvent s'appliquer à d'autres langages
Comme d'habitude le formateur est très pédagogue et maîtrise son sujet
Le cas pratique utilisé tout au long de la formation est particulièrement bien trouvé !
Les objectifs
- Savoir mesurer les performances d’un 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é
- Ordinateur portable à apporter
Le programme de la formation Performances Python
Bien choisir sa structure de données
- Introduction aux performances Python et à l'importance des structures de données
-
Comparaison asymptotique
- Comprendre la notations
O()
- Analyser la complexité temporelle et spatiale des algorithmes courants
Les implémentations
O(1)
- Étude des structures de données avec des opérations en temps constant
- Choix judicieux de la structure de données en fonction du contexte
Les outils de mesure
-
Les outils extérieurs à Python
- Utilisation de
time
et hyperfine
pour mesurer le temps d'exécution
- Configuration de la machine pour des mesures reproductibles
-
Les outils de la bibliothèque standard
- Introduction à
cProfile
, pstats
et timeit
- Analyse des performances et des statistiques obtenues
-
Les outils tiers
- Présentation des outils avancés tels que
pyperf
, snakeviz
, scalene
, vprof
, etc
- Utilisation de ces outils pour profiler et visualiser les performances des programmes
Les JIT, compilateurs et interpréteurs tiers
Présentation des JIT (compilateurs Just-In-Time)
- Principe de fonctionnement des JIT et leur impact sur les performances
- Exploration des JIT populaires : PyPy
, numba
, cython
, pythran
, nuitka
, mypyc
, pyston
, etc.
- Avantages et limitations de PyPy
- Introduction à Numba
et Cython
pour la compilation JIT et l'optimisation du code
Utiliser du code natif pour optimiser ponctuellement
- *Interfacer du C avec Python en utilisant
Cython
*
- Introduction à
Cython
et à l'écriture de modules Cython
- Création d'extensions Python en utilisant
Cython
pour des performances accrues
-
Rédiger un module Python en C
- Utilisation de C-API de Python pour écrire un module en C
- Compilation et intégration du module en C dans un programme Python
Mises en pratique :
- Rédaction naïve d’un algorithme (modèle du tas de sable abélien).
- Étude de la complexité, du temps d’exécution, et des goûlots d’étranglements des implémentations.
- Implémenter des optimisations ciblées par les mesures précédentes.
- Tentative d’utiliser des structures de données spécialisées.
- Tentatives d’utiliser différents compilateurs (JIT et Ahead of Time) et interpréteurs.
Télécharger le programme
Formateur
Julien Palard est un consultant expert Python passionné et pédagogue, investi dans de nombreux projets de logiciels libres (tels que sphinx-lint, pipe ou logtop).
En parallèle de ses activités professionnelles, Julien est également actif en tant que formateur et mentor, partageant généreusement ses connaissances et son expérience avec la communauté. Il cumule plus de 1350 heures de formation.
Passionné par la promotion du logiciel libre et de l'open source, Julien a :
* coordonné la traduction de Python en français,
* co-créé le projet d'enseignement libre et open-source hackinscience.org,
* été le mainteneur de plusieurs projets Python et C.
En dehors de son engagement professionnel et de ses projets open-source, Julien s'est également impliqué dans la communauté en tant que co-organisateur de la PyConFR depuis 2019 et en tant que membre du comité directeur de l'Association Francophone Python (AFPy) de 2020 à 2022.
LG
Léo G.
Yes We Dev - Our Real Win SAS
05.07.2024
Formation intéressante dont les principes peuvent s'appliquer à d'autres langages
Comme d'habitude le formateur est très pédagogue et maîtrise son sujet
Le cas pratique utilisé tout au long de la formation est particulièrement bien trouvé !
FAQ
Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié
Qualiopi, ce qui permet la prise en charge par des organismes comme
Pôle emploi, votre OPCO ou encore le
CPF (Compte Personnel de Formation) pour certaines formations.
Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?
Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.
Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)
Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.
Voici une journée type :
- 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
- 9h30 : la formation commence
- 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
- 14h : reprise de la formation
- 18h : fin de la journée
8 raisons de participer à une formation Human Coders
- Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1719 sessions réalisées). 99% des participants se disent satisfaits de nos formations
- Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
- Catalogue de formations complet : 184 formations au catalogue, de quoi vous accompagner sur tout vos projets
- Écosystème dynamique : Nous accompagnons les dev depuis 13 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
- Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
- Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
- Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
- Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux