Quel outil de performance dois-je utiliser ? (C#, Visual Basic, C++, F#)
Visual Studio fournit un large éventail d’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 pour vous aider à 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 Étude de cas : Guide du débutant pour optimiser le code.
Quel outil dois-je utiliser ?
Le tableau suivant répertorie les différents outils que Visual Studio propose et fournit des scénarios courants pour choisir l’outil.
Outil de performance | Description | Quand utiliser l’outil ? |
---|---|---|
Utilisation du CPU | Indique où le processeur passe du temps. | • Commencez une enquête sur les problèmes généraux de performances. • Examiner l’utilisation élevée du processeur du serveur. • Examinez les scénarios DevOps, tels que lorsque les commandes ne passent pas au site web de vente au détail. • Optimiser l’utilisation du processeur. • Examiner la latence dans les appels d’API. |
Graphique de flammes | Affichage 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 réactif | Affichage dans l’outil Utilisation du processeur qui montre où le temps du processeur a été le plus utilisé dans votre application. | Examiner la latence dans les appels d’API |
Utilisation de la mémoire | Affiche la mémoire de votre application pour rechercher des problèmes tels que les fuites de mémoire. | • Optimiser l’utilisation de la mémoire • Examiner le gel de l’interface utilisateur • Examiner les fuites de mémoire suspectes (code natif) |
Allocation d’objets .NET | Indique où les objets .NET sont alloués et fournit des informations sur le ramasse-miettes. | • 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 du processeur, mais vous souhaitez compter exactement le nombre d’appels et le temps passé dans les fonctions en fonction du temps d’horloge du mur. • Vous souhaitez voir le temps bloqué, comme le temps passé à attendre les verrous. • Remarque : cet outil nécessite une surcharge supplémentaire. |
Entrée/Sortie de fichier | Affiche vos opérations d’E/S de fichier et combien de temps elles prennent et combien de données 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 le point d’arrêt) vers 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 lente de l’application sur un serveur web distant |
.NET asynchrone | Affiche l’utilisation asynchrone/await dans les applications .NET. | Examinez les problèmes de performances suspects avec du code asynchrone. |
compteurs .NET | Rapport en direct pour les compteurs .NET. | • Commencez une enquête sur les problèmes généraux de performances. • Vous souhaitez une trace pour les métriques basées sur les compteurs .NET, telles que les exceptions par seconde, le garbage collection et l’utilisation du processeur. |
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 générale de votre application Direct3D. | Vérifiez si les performances de votre application sont liées au processeur ou au GPU. |
chronologie des applications | 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 que Visual Studio propose et les différents types de projets que vous pouvez utiliser avec :
L'outil de performance | .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 fichiers | oui | oui | oui | oui |
Conseils sur les performances | oui | oui | oui | oui |
Visionneuse d’événements | oui | oui | oui | oui |
.NET asynchrone | oui | Non | oui | oui |
compteurs .NET | Oui (.NET Core/5+ uniquement) | Non | Non | Oui (ASP.NET Core uniquement) |
Base de données | Oui (.NET Core/5+ uniquement) | Non | Non | Oui (ASP.NET Core uniquement) |
Utilisation du GPU | oui | oui | oui | Non |
chronologie des applications | 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 Windows :
- Utilisation du processeur
- Suivi de l’allocation d’objets .NET
- .NET Async
- Compteurs .NET
- 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 de Visual Studio.
- Étude de cas : Guide du débutant pour optimiser le code
- Étude de cas : isoler un problème de performances
- Améliorer les performances de Visual Studio avec le nouvel outil d’instrumentation
- Étude de cas : double performance en moins de 30 minutes