1 points par darjeeling 1 시간 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Présentation de Tachyon, le profileur par échantillonnage introduit dans Python 3.15, avec des cas montrant comment visualiser les goulots d’étranglement en multithreading et repérer les pièges de performance liés aux abstractions POO

Qu’est-ce que Tachyon ?

Un profileur basé sur l’échantillonnage qui sera ajouté à la bibliothèque standard de Python 3.15.
Son point clé est la prise en charge native des environnements free-threading (sans GIL), que les profileurs existants avaient jusque-là délaissés.

Principales caractéristiques

  • Faible surcoût grâce à l’échantillonnage
  • Prise en charge du profilage simultané de tous les threads (option -a)
  • Possibilité de s’attacher à distance à un processus en cours d’exécution
  • Prise en charge de plusieurs formats de sortie, dont les flamegraphs
  • Compatible async — peut aussi s’appliquer aux programmes asyncio

Comment l’exécuter

sudo -E uv run -p 3.15.0a6t python -m profiling.sampling run \  
  -a --flamegraph -o profile.html -r 20khz your_script.py  
# -a       : profile tous les threads en plus du thread principal  
# -r 20khz : échantillonnage à 20 000 fois par seconde (précision ajustable)  
# résultat : flamegraph HTML — les colonnes rouges indiquent le hot path  

Cas réel d’application — détection d’un goulot d’étranglement en free-threading

Avant optimisation — l’accès à Grid via __getitem__ représentait 75 % du temps d’exécution total

<https://blog.changs.co.uk/images/unoptimised-bench.png>;

Après optimisation — après passage à un accès direct au tuple interne, ce chiffre est tombé à 5,32 %

<https://blog.changs.co.uk/images/optimised-bench.png>;

Pourquoi c’est important

  • Jusqu’à présent, les problèmes de performance en free-threading ne pouvaient être trouvés qu’« à l’intuition »
  • Tachyon est le premier outil officiel à montrer visuellement où les threads se bloquent
  • Il ouvre la voie aux développeurs Python généralistes pour mesurer et améliorer eux-mêmes les performances du free-threading

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.