À propos du projet

py-spy est un profileur par échantillonnage écrit en Rust, conçu pour analyser les programmes Python avec une surcharge extrêmement faible. Comme il s'exécute dans un processus séparé et lit directement la mémoire du programme cible, il est sûr à utiliser en environnement de production. Principales fonctionnalités : - **Profilage non intrusif** : Visualisez le temps passé dans les fonctions sans redémarrer le programme ni modifier le code source. - **Trois modes principaux** : - `record` : Génère des profils dans des formats tels que des graphiques en flammes SVG interactifs ou des fichiers speedscope. - `top` : Offre une vue en direct et de haut niveau des fonctions consommant le plus de temps, similaire à la commande Unix top. - `dump` : Vide la pile d'appels actuelle pour chaque thread Python, y compris d'éventuelles variables locales. - **Large compatibilité** : Supporte Linux, OSX, Windows et FreeBSD, et est compatible avec les versions CPython 2.3-2.7 et 3.3-3.14. - **Fonctionnalités avancées** : - Support du profilage des extensions natives C/C++ ou Cython. - Capacité à profiler les sous-processus (par exemple, multiprocessing ou pools de travailleurs gunicorn). - Détection du GIL (Global Interpreter Lock) pour filtrer les threads détenant le verrou. - Mode non bloquant pour éviter de suspendre complètement le processus cible.