Quel outil de performance devrais-je utiliser ? (C#, Visual Basic, C++, F#)
Visual Studio propose des outils de profilage pour vous aider à diagnostiquer différents types de problèmes de performances d’application en fonction de votre type d’application. Dans cet article, nous fournissons des informations permettant de trouver l’outil approprié pour votre scénario et votre type d’application.
Pour une approche générale de l'optimisation du code à l'aide des outils de profilage, consultez l'étude de cas : Guide du débutant pour l'optimisation du code.
Quel outil dois-je utiliser ?
Le tableau suivant répertorie les différents outils offerts par Visual Studio et fournit des scénarios courants pour choisir l’outil.
Outil d’analyse des performances | Description | Quand utiliser l’outil ? |
---|---|---|
Utilisation du processeur | Indique où le processeur consacre du temps. | • Commencez un examen des problèmes généraux de performances. • Examinez l’utilisation élevée du processeur du serveur. • Examinez les scénarios DevOps, par exemple quand les commandes ne passent pas dans le site web de vente au détail. • Optimisez l’utilisation du processeur. • Examinez la latence dans les appels d’API. |
Graphe de flamme | Affichez dans l’outil Utilisation du processeur qui fournit une autre visualisation de l’arborescence des appels. | Examiner la latence dans les appels d’API |
Chemin à chaud | Affichez l’outil Utilisation du processeur qui montre où la plupart du temps processeur a été passé dans votre application. | Examiner la latence dans les appels d’API |
Utilisation de la mémoire | Affiche la mémoire de votre application pour trouver des problèmes tels que les fuites de mémoire. | • Optimisez l’utilisation de la mémoire • Examiner le gel de l’interface utilisateur • Examiner les fuites de mémoire suspectées (code natif) |
Allocation d’objets .NET | Indique où les objets .NET sont alloués et donne des informations sur le nettoyage de la mémoire. | • Optimiser l’utilisation de la mémoire .NET • Analyser le nettoyage de la mémoire |
Instrumentation | Affiche les nombres d’appels exacts et les heures d’appel. | • Vous avez besoin d’un outil tel que l’utilisation de l’UC, mais vous devez avoir le nombre d’appels exact et le temps passé dans les fonctions sur la base du temps d’horloge murale. • Vous devez voir le temps bloqué, par exemple le temps passé à attendre des verrous. • Remarque : cet outil nécessite des frais supplémentaires. |
E/S de fichier | Affiche vos opérations d’E/S de fichier, la durée et la quantité de données qu’elles traitent. | Examiner le gel de l’interface utilisateur |
Conseils sur les performances | Affiche une mesure rapide des informations de performances lors de l’interaction avec votre code. | Lors du débogage, vous souhaitez voir le temps écoulé entre l’opération d’étape précédente (ou point d’arrêt) et l’étape ou le point d’arrêt actuel. |
Visionneuse d’événements | Affiche les requêtes HTTP, les messages de journal et les exceptions. | • Examiner la latence dans les appels d’API • Examiner l’exécution d’une application lente sur un serveur web distant |
.NET Async | Affiche l’utilisation asynchrone/await dans les applications .NET. | Examinez le problème de performances suspecté avec le code asynchrone. |
.NET Counters | Rapport en direct pour les compteurs .NET. | • Commencez un examen des problèmes généraux de performances. • Vous devez avoir une trace pour les indicateurs basés sur les compteurs .NET, par exemple les exceptions par seconde, le garbage collection et l’utilisation du processeur. |
Sauvegarde de la base de données | Affiche les performances de vos requêtes de base de données. | Examinez les performances des requêtes de base de données qui utilisent ADO.NET ou Entity Framework Core. |
Utilisation du GPU | Affiche l’utilisation matérielle de haut niveau de votre application Direct3D. | Vérifiez si les performances de votre application sont liées au processeur ou au GPU. |
Chronologie de l'application | Affiche les performances de l’interface utilisateur pour les applications XAML. | Examinez les performances de l’interface utilisateur dans les applications XAML, telles que le temps consacré au rendu des images. |
IntelliTrace | Outil de débogueur qui vous permet d’enregistrer des événements et d’examiner l’état de votre application à différents points d’exécution. | Vous souhaitez qu’un outil examine l’état de l’application à différents points, pas seulement l’état actuel de l’application. |
Quels outils sont pris en charge pour mon projet ?
Le tableau suivant répertorie les différents outils proposés par Visual Studio, ainsi que les différents types de projet avec lesquels vous pouvez les utiliser :
Outil d’analyse des performances | .NET | C/C++ | UWP | ASP.NET/ASP.NET Core |
---|---|---|---|---|
Utilisation du processeur | Oui | oui | oui | Oui |
Utilisation de la mémoire | Oui | oui | oui | Oui |
Allocation d’objets .NET | Oui | non | oui | Oui |
Instrumentation | Oui | oui | oui | Oui |
E/S de fichier | Oui | oui | oui | Oui |
Conseils sur les performances | Oui | oui | oui | Oui |
Visionneuse d’événements | Oui | oui | oui | Oui |
.NET Async | Oui | non | oui | Oui |
.NET Counters | oui (.NET Core/5+ uniquement) | non | non | oui (ASP.NET Core uniquement) |
Sauvegarde de la base de données | oui (.NET Core/5+ uniquement) | non | non | oui (ASP.NET Core uniquement) |
Utilisation du GPU | Oui | oui | oui | Non |
Chronologie de l'application | oui (XAML) | non | Oui | Non |
Explorateur de performances | non | non | non | Non |
IntelliTrace | .NET avec Visual Studio Enterprise uniquement | non | .NET avec Visual Studio Enterprise uniquement | .NET avec Visual Studio Enterprise uniquement |
Quels outils sont pris en charge sur Linux ?
Les outils suivants sont pris en charge avec Linux en tant que plateforme cible et avec Windows :
- Utilisation du processeur
- Suivi d’allocation d’objets .NET
- .NET Async
- .NET Counters
- Observateur d’événements
- Base de données
Apprendre à utiliser les profileurs
Les articles et billets de blog suivants fournissent plus d’informations pour vous aider à apprendre à utiliser efficacement les outils de performances Visual Studio.
- Étude de cas : Guide d'optimisation du code pour les débutants
- Étude de cas : Isoler un problème de performances
- Amélioration des performances de Visual Studio avec le nouvel outil d’instrumentation
- Étude de cas : Doubler les performances en moins de 30 minutes