Choix entre Visual Studio Performance Profiler, Windows Performance Toolkit et PerfView

Ce guide fournit une comparaison générale des principales technologies de profilage des performances à usage général chez Microsoft : Visual Studio Performance Profiler, Windows Performance Toolkit et PerfView.

Ces outils peuvent vous aider à diagnostiquer et à comprendre les caractéristiques de performances de vos applications sur Windows. L’objectif de ce guide est de fournir une vue d’ensemble du moment où utiliser l’un sur l’autre, en mettant en évidence chacune de leurs forces et en offrant une brève vue d’ensemble des fonctionnalités qu’ils contiennent.

Vue d’ensemble

Visual Studio Performance Profiler est créé par l’équipe Visual Studio pour comprendre rapidement les caractéristiques de performances d’une application en cours de développement dans le système de projet Visual Studio existant. Sa force s’intègre étroitement au projet de développement actif, en simplifiant l’analyse des scénarios de performances les plus courants, et une collection rapide et simple d’une seule application.

Windows Performance Toolkit est créé par l’équipe Windows pour comprendre les caractéristiques de l’ensemble du PC à la fois. Bien qu’il ait grandi à partir de la nécessité d’analyser le matériel et les pilotes, il est très efficace de comprendre également les problèmes logiciels. Sa force consiste à collecter de grandes quantités d’informations à partir de l’ordinateur entier à la fois, de sorte que les problèmes multiprocesseurs, ceux qui traitent du matériel ou des pilotes, et les scénarios complexes sont bien mis en correspondance pour ces outils.

PerfView est créé par l’équipe .NET pour comprendre les performances des applications .NET. Comme Windows Performance Toolkit, il peut collecter de grandes quantités d’informations à partir de l’ordinateur entier à la fois. Il est différencié par sa capacité à afficher des informations très détaillées sur les services runtime .NET, tels que le garbage collection, la compilation juste-à-temps et le pool de threads managés. PerfView peut être utilisé pour les applications managées, natives et en mode mixte.

Ces outils se chevauchent. Souvent, vous pouvez commencer à explorer un problème dans un outil et basculer vers un autre pour une vue différente du même scénario. D’autres fois, l’un des outils sera plus efficace que les autres.

Installation

Visual Studio Performance Profiler est un composant de Visual Studio lui-même et peut être installé via le même Assistant d’installation que le reste de l’environnement de développement.

Windows Performance Toolkit est téléchargeable séparément dans le cadre du Kit de déploiement et d’évaluation Windows. Toutefois, l’outil Enregistreur de performances de ligne de commande est préinstallé avec Windows 10 et Windows 11 comme wpr.exe disponible sur la variable de chemin d’accès par défaut à partir d’interpréteurs de commandes tels que PowerShell et l’invite de commandes.

Le Analyseur de performances est disponible en tant qu’application dans le Microsoft Store.

PerfView est disponible en tant que téléchargement autonome dans la page Versions gitHub de PerfView. Aucune installation n’est requise.

Personnalisation pour les scénarios d’analyse avancée des performances

Windows Performance Toolkit offre également deux points d’extensibilité qui peuvent servir des scénarios d’analyse avancée des performances.

  • Le Kit de développement logiciel (SDK) Microsoft Performance Toolkit gère le traitement des données de trace et permet aux développeurs de créer leurs propres plug-ins à l’intérieur de Windows Analyseur de performances.
  • .NET TraceProcessing permet la création d’outils personnalisés qui peuvent traiter les informations de trace dans des tables résultantes et est particulièrement utile pour l’analyse automatisée des données de trace en bloc.

PerfView est de même basé sur la bibliothèque .NET TraceEvent pour consommer des traces de performances par programmation. TraceEvent peut être utilisé indépendamment de PerfView pour effectuer une analyse personnalisée des données de trace de performances.

Remarque

Pour que les scénarios d’analyse des performances fonctionnent, vous devez accéder aux symboles qui correspondent à l’application Windows testée. Lors de la génération avec Visual Studio, ils sont situés comme dans les paramètres du scénario de débogage, générés avec votre solution ou capturés à partir de serveurs de symboles. Lors de l’analyse d’autres bibliothèques ou composants, vous devez localiser les symboles de ces composants pour effectuer votre analyse.

Considérations relatives au choix d’un outil

L’outil à choisir dépend du scénario de performances que vous essayez d’explorer. Une comparaison des fonctionnalités et des caractéristiques entre les outils se trouve dans le tableau ci-dessous :

Conseil

Pour une règle générale, commencez par le profilage Visual Studio lorsque cela est possible. Passez à Windows Performance Toolkit ou PerfView quand vous atteignez les limites de ce que les outils Visual Studio peuvent faire.

Situation Profileur de performances Visual Studio Windows Performance Toolkit PerfView
Considérations générales relatives à l’utilisation
Taille du fichier de trace ✔️ 🆗 🆗
Acquisition d’outils ✔️ ✔️ ✔️
Kits d’extensibilité ✔️ ✔️
Étendue des considérations relatives au travail
Processus unique ou projet ✔️ 🆗 🆗
Plusieurs processus ✔️ ✔️
Considérations matérielles
Utilisation du processeur ✔️ ✔️ ✔️
Utilisation du GPU ✔️ ✔️
Utilisation de la mémoire ✔️ ✔️ ✔️
Entrée/sortie de l’appareil ✔️ ✔️
Utilisation de l’alimentation ✔️
Handles système ✔️ ✔️
Considérations relatives à la prise en charge du langage de code
Prise en charge de C/C++ ✔️ ✔️ ✔️
Prise en charge de .NET ✔️ ✔️ ✔️
Prise en charge de JavaScript 🆗 🆗 🆗
Considérations relatives au scénario
Suivi d'événements pour Windows 🆗 ✔️ ✔️
Composition ✔️
HTML/Edge/Internet Explorer/Webview ✔️
XAML/WinUI 🆗 ✔️ ✔️
Pipelines audio/vidéo et problèmes ✔️
Minutage de la base de données ✔️
Allocation d’objets managés et garbage collection ✔️ ✔️
Scénarios personnalisés ✔️ ✔️

Clé

  • ✔️ Bien pris en charge : conçu pour la tâche prévue et obtient des résultats robustes et détaillés.
  • 🆗 Prise en charge : peut nécessiter une configuration ou des étapes supplémentaires pour obtenir les résultats souhaités. Peut contenir une étendue limitée d’action dans la catégorie.
  • ❌ Non pris en charge : non conçu pour cette utilisation.

Considérations générales relatives à l’utilisation

Pour ceux qui commencent simplement avec l’analyse des performances, nous vous recommandons Visual Studio Performance Profiler comme fonctionnalité bien intégrée dans la suite de développement Visual Studio existante. Nous vous recommandons d’utiliser Visual Studio Performance Profiler sur PerfView s’il répond à vos besoins.

Pour une analyse des performances système plus complexe qui peut nécessiter plus de puissance et de polyvalence, nous vous recommandons windows Performance Toolkit, qui se compose de deux outils utilisés pour accomplir des tâches d’analyse des performances :

  • L’enregistreur de performances Windows, disponible à la fois en tant qu’outil en ligne de commande et avec une interface graphique, est chargé de capturer la session de trace.
  • Le Analyseur de performances Windows est ouvert ultérieurement pour post-traiter les données collectées et fournir une vue d’analyse hautement personnalisable.

Voici quelques-uns des avantages offerts par Visual Studio Performance Profiler :

  • Une bonne introduction à l’analyse des performances dans les domaines principaux.
  • Il gère la plupart des complexités de l’analyse et du débogage automatiquement en fonction de la configuration du projet.
  • Il met automatiquement en évidence les principaux domaines de préoccupation.
  • Il est préférable de se concentrer sur une seule application, avec un jeu de données plus petit et plus ciblé et une plus petite étendue de collection.
  • Le focus plus spécifique se traduit par moins d’impact sur d’autres applications et matériels de machine pendant que le profilage se produit, une taille globale réduite aux fichiers de suivi générés et stockés, et une vitesse de traitement accrue pour examiner les informations une fois la collecte terminée.
  • Prend moins de temps pour démarrer et terminer une trace, avec une capacité plus rapide à passer en revue et à tourner, car Visual Studio Performance Profiler s’inquiète uniquement de l’application et non de l’ensemble du système.
  • La collecte de données et l’analyse résultante sont toutes effectuées dans Visual Studio, avec des pages d’analyse qui lancent automatiquement la conclusion de la collecte. La vue rapport a également tendance à attirer l’attention sur les points chauds ou les zones d’action.

Voici quelques-uns des avantages offerts par Windows Performance Toolkit :

  • De nombreuses documentations et blogs sont fournis par les équipes de performances et de diagnostics Windows pour vous aider à commencer.
  • Il est préférable de collecter des fichiers très volumineux, en particulier à partir de systèmes occupés avec des tâches en arrière-plan. Il s’agit d’un outil catch-all permettant de collecter des informations qui seront ensuite filtrées ultérieurement dans l’interface windows Analyseur de performances.
  • Possibilité d’être personnalisée pour les scénarios d’analyse avancée des performances à l’aide de points d’extensibilité. (Voir ci-dessous)

Voici quelques-uns des avantages offerts par PerfView :

  • Documentation intégrée complète et vidéos pratiques accessibles sur Internet liées à partir de l’application.
  • Il est facile de déployer dans des environnements de production en copiant simplement PerfView.exe.
  • Mode enregistreur de vol pour capturer des problèmes difficiles à reproduire.
  • Diagnostics très détaillés pour les services runtime .NET.
  • Extensible pour les vues personnalisées.

Étendue des considérations relatives au travail

Pour les analyses entourant une application unique et en particulier un processus unique, tous les outils sont très capables de collecter et de comprendre les performances. Toutefois, l’avantage est associé à Visual Studio Performance Profiler, en particulier lorsque la source de l’application et le système de projet sont déjà disponibles. Le moteur Visual Studio Performance Profiler est conçu pour collecter des informations sur le processeur, le GPU et la mémoire à partir d’un binaire de manière simplifiée similaire à la fonctionnalité de débogage F5. Tout en se concentrant uniquement sur une seule application à la main, ce mécanisme de collection offre un tour plus serré et une boucle de développement.

Choisissez PerfView si Visual Studio n’a pas les fonctionnalités nécessaires, ne peut pas être exécuté en raison des exigences de collecte (courantes dans les environnements de production) ou des fonctionnalités de diagnostic .NET plus détaillées sont nécessaires.

Pour les situations avec une plus grande complexité qui incluent plusieurs demandes interprocesseurs, des périphériques matériels et leurs pilotes, ou des plongées approfondies dans les technologies de plateforme Windows, le Kit de ressources de performances Windows est le choix optimal.

Considérations matérielles

Visual Studio Performance Profiler, Windows Performance Toolkit et PerfView peuvent diagnostiquer le processeur et la mémoire pour les principaux composants matériels, avec Visual Studio Performance Profiler et Windows Performance Toolkit prenant en charge le GPU. Les outils sont généralement bien mis en correspondance lors de l’analyse d’introduction dans ces domaines.

L’utilisation du processeur peut être analysée avec les trois outils et est généralement capturée à l’aide de l’échantillonnage. L’échantillonnage capture régulièrement les traces de pile de l’application et fournit un classement sur la fréquence à laquelle ils apparaissent. Les deux outils peuvent ajuster ce comportement pour utiliser plutôt l’instrumentation pour la comptabilité exacte.

L’utilisation du GPU peut être analysée avec Visual Studio Performance Profiler et Windows Performance Toolkit capturant une vue d’ensemble générale des informations.

L’utilisation de la mémoire peut être analysée avec les trois outils qui collectent des informations sur l’espace du tas et les piles associées aux allocations dans le tas.

Lorsque des scénarios plus complexes surviennent, tels que l’analyse de la mise en réseau, du disque, des appareils, des handles ou de la consommation d’énergie globale du système, Windows Performance Toolkit est plus équipé pour gérer l’analyse. Ces données sont mieux collectées directement à partir du système d’exploitation, car elles distribuent des demandes aux différents composants matériels. Windows Performance Toolkit est développé en parallèle avec le système d’exploitation. Il est donc prêt et capable de collecter cette catégorie d’informations plus axée sur le système.

Considérations relatives à la prise en charge du langage de code

Windows Performance Toolkit est principalement axé sur la prise en charge de C et C++, car ces langages sont utilisés dans la base de code du système d’exploitation Windows.

La prise en charge de Visual Studio Performance Profiler se concentre sur un large éventail de langages de programmation, à partir de technologies d’origine .NET telles que C# et ASP.NET ensuite s’étendre vers l’extérieur.

PerfView prend en charge les applications .NET et natives (C et C++). Il a une connaissance approfondie des runtimes .NET et des fonctionnalités autour de ASP.NET charges de travail web.

Cela ne veut pas dire que Visual Studio ne peut pas analyser du code C ou C++, ou que Windows Analyseur de performances ne peut pas analyser les applications .NET, ou que PerfView ne peut pas analyser les applications web. Il est préférable de commencer avec l’outil le plus étroitement correspondant à l’application analysée pour tirer parti des forces de chaque outil.

Considérations relatives au scénario

Tous les outils contiennent plusieurs options basées sur des scénarios pour étudier les performances des applications.

Les options de Visual Studio Performance Profiler ont tendance à se concentrer sur .NET, l’interface utilisateur et les bases de données résidant dans l’application en cours d’analyse.

Windows Performance Toolkit a tendance à se concentrer sur les composants et infrastructures du système d’exploitation tels que la composition, les vues de navigateur et les problèmes dans les pipelines de traitement en temps réel.

Pour les scénarios nécessitant une solution plus personnalisée, l’enregistreur de performances Windows peut combiner à la fois des données de collecte à l’échelle du système et de collecte liées à l’application en une seule session d’enregistrement. Cette fonctionnalité permet à un développeur d’applications d’offrir une solution complète à déployer sur les clients pour demander des données de performances à partir de matériel qui peuvent différer de celles utilisées pour développer le produit. Vous trouverez plus d’informations sur ce mécanisme dans la série de blog Création de profils personnalisés par l’équipe performances et diagnostics Windows.

PerfView est destiné aux enquêtes approfondies des applications et runtimes .NET, mais elle est tout aussi capable dans les enquêtes multiprocesseurs et au niveau du système d’exploitation.

Résumé

Visual Studio Performance Profiler, Windows Performance Toolkit et PerfView sont trois outils robustes de Microsoft disponibles pour comprendre les performances de votre application. Choisir l’outil qui répond le mieux à vos besoins nécessite diverses considérations concernant votre situation spécifique. Nous espérons que ce guide fournira les informations nécessaires pour faire des choix d’analyse des performances judicieux, mais également vous accueillir pour envoyer des commentaires sur cette page ci-dessous, ou pour les problèmes spécifiques liés aux performances de développement Windows, veuillez déposer un problème sur le référentiel de performances du développement Windows.