Profilage du code Python dans Visual Studio
Visual Studio fournit des fonctionnalités de profilage pour les applications Python lorsque vous déboguez votre code. Le débogueur Visual Studio vous permet de parcourir votre code pour vérifier les variables, analyser l’état du programme, résoudre les problèmes potentiels, et ainsi de suite. Les fonctionnalités de profilage de Visual Studio fournissent des informations sur les temps d’exécution de votre programme. Vous pouvez utiliser ces informations pour identifier les problèmes de performances dans votre code.
Le profilage est disponible pour Python 3.9 et versions antérieures lorsque vous utilisez un interpréteur basé sur CPython.
Prérequis
Visual Studio sur Windows installé avec le support pour les charges de travail Python. Pour plus d’informations, veuillez consulter la rubrique Installer le support Python dans Visual Studio.
Interpréteur basé sur CPython. CPython est l’interpréteur « natif » et le plus couramment utilisé. Il est disponible en version 32 bits et 64 bits (32 bits recommandé). Pour plus d’informations, veuillez consulter la rubrique Installer des interpréteurs Python.
Un projet Python avec du code ou un dossier avec du code Python.
Visual Studio pour Mac n'est pas pris en charge. Pour plus d’informations, veuillez consulter la rubrique Qu’advient-il de Visual Studio pour Mac ? Visual Studio Code sur Windows, Mac et Linux fonctionne bien avec Python grâce aux extensions disponibles.
Utiliser le profileur avec l’interpréteur CPython
Lorsque vous profilez une application Python, Visual Studio collecte des données pendant toute la durée du processus, mesurée en millisecondes (ms).
Suivez les étapes suivantes pour commencer à utiliser les fonctions de profilage dans Visual Studio :
Dans Visual Studio, ouvrez votre fichier de code Python.
Vérifiez que l’environnement actuel de votre code Python est un interpréteur basé sur CPython. Vous pouvez vérifier l’interpréteur sélectionné dans la fenêtre Environnements Python.
Dans la barre d’outils principale, sélectionnez Déboguer>Lancer le profilage Python. Visual Studio ouvre la boîte de dialogue Paramètres de profilage :
Dans la boîte de dialogue Paramètres de profilage, choisissez le fichier de code ou le code de projet que vous souhaitez profiler :
Pour profiler tout le code du projet :
Sélectionnez Projet en cours.
Sélectionnez le projet dans la liste déroulante. La liste affiche tous les projets dans la solution Visual Studio actuelle.
Pour profiler un fichier spécifique :
Sélectionnez un script autonome.
Sélectionnez l’interpréteur Python dans la liste déroulante ou accédez à l’emplacement. Pour spécifier un interpréteur non répertorié, choisissez Autre dans la liste déroulante, puis spécifiez le chemin d’accès de l’interpréteur.
Identifiez le fichier de script ou accédez à l’emplacement.
Spécifiez le répertoire de travail ou accédez à l’emplacement.
Spécifiez les arguments de ligne de commande pour le script.
Sélectionnez Démarrer.
Le profileur s’exécute et ouvre un rapport de performances dans Visual Studio. Vous pouvez consulter le rapport pour explorer la façon dont le temps est passé dans votre application :
Utiliser le profileur avec IronPython
IronPython est une implémentation .NET de Python disponible en versions 32 et 64 bits. IronPython n’est pas un interpréteur CPython. Visual Studio prend en charge le débogage Python standard pour IronPython, mais pas les fonctionnalités de profilage.
Pour les projets IronPython, vous pouvez utiliser le profileur Visual Studio .NET. Exécutez la commande ipy.exe
directement en tant qu’application cible avec les arguments appropriés pour lancer votre script de démarrage. Sur la ligne de commande, incluez l’argument -X:Debug
pour vous assurer que tout votre code Python peut être débogué et profilé. Cet argument génère un rapport de performances qui inclut le temps passé dans le runtime IronPython et votre code. Votre code est identifié à l’aide de noms tronqués.
IronPython offre un profilage intégré, mais il n’existe actuellement aucun visualiseur utilisable. Pour plus d’informations, consultez Un profileur IronPython (blog) et Débogage et profilage dans la documentation IronPython.