Formation Performances Python

Maximisez les performances de vos projets avec notre formation dédiée à l'optimisation Python.

Prix (Formation inter-entreprise)

800€ HT / personne

Durée

1 jour

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Au-delà du confort qu’elle peut offrir, l’optimisation des performances d’un programme Python permet de réduire le matériel exécutant votre programme. Un programme optimisé est ainsi écologiquement plus vertueux : diminution de la consommation d'électricité et réduction du matériel utilisé.

Lors de cette formation pratique, vous acquerrez des compétences avancées pour améliorer les performances des programmes Python en choisissant les bonnes structures de données, en utilisant des outils de mesure appropriés, en explorant les JIT (compilateurs Just-In-Time) et en optimisant le code avec des modules en C.

Cet apprentissage s'adresse à tout·e·s développeur·euse·s aguerri·e·s au langage Python.

Grâce à la simulation d’un tas de sable, vous aurez l’opportunité de mettre directement en pratique les notions abordées.

Envie d’explorer l’écosystème Python ? Nos formations Python, Python avancé et Django sont faites pour vous.

Découvrez aussi nos formations spécifiques telles que Machine Learning avec Python ou encore Python scientifique.

Toutes nos formations étant limitées à 6 participant·e·s par session, vous aurez donc un contact privilégié avec votre formateur, Julien Palard, développeur passionné, très pédagogue et impatient de partager son expérience professionnelle lors des cours et durant les moments d’échanges informels de la formation.

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

Le(s) formateur(s)

Julien PALARD

Julien PALARD

Julien Palard est un consultant expert Python passionné et pédagogue, investi dans de nombreux projets de logiciels libres.
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, a co-créé le projet d'enseignement libre et open-source hackinscience.org, et a été le mainteneur de plusieurs projets Python et C, notamment pipe, sphinx-lint et logtop.
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.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 103 formations au catalogue, 1453 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Formation Performances Python

Maximisez les performances de vos projets avec notre formation dédiée à l'optimisation Python.

Au-delà du confort qu’elle peut offrir, l’optimisation des performances d’un programme Python permet de réduire le matériel exécutant votre programme. Un programme optimisé est ainsi écologiquement plus vertueux : diminution de la consommation d'électricité et réduction du matériel utilisé.

Lors de cette formation pratique, vous acquerrez des compétences avancées pour améliorer les performances des programmes Python en choisissant les bonnes structures de données, en utilisant des outils de mesure appropriés, en explorant les JIT (compilateurs Just-In-Time) et en optimisant le code avec des modules en C.

Cet apprentissage s'adresse à tout·e·s développeur·euse·s aguerri·e·s au langage Python.

Grâce à la simulation d’un tas de sable, vous aurez l’opportunité de mettre directement en pratique les notions abordées.

Envie d’explorer l’écosystème Python ? Nos formations Python, Python avancé et Django sont faites pour vous.

Découvrez aussi nos formations spécifiques telles que Machine Learning avec Python ou encore Python scientifique.

Toutes nos formations étant limitées à 6 participant·e·s par session, vous aurez donc un contact privilégié avec votre formateur, Julien Palard, développeur passionné, très pédagogue et impatient de partager son expérience professionnelle lors des cours et durant les moments d’échanges informels de la formation.

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

Le(s) formateur(s)

Julien PALARD

Julien PALARD

Julien Palard est un consultant expert Python passionné et pédagogue, investi dans de nombreux projets de logiciels libres.
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, a co-créé le projet d'enseignement libre et open-source hackinscience.org, et a été le mainteneur de plusieurs projets Python et C, notamment pipe, sphinx-lint et logtop.
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.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 103 formations au catalogue, 1453 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012