Partage via


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.