PerfView est un outil d'analyse de performance gratuit qui aide à isoler les problèmes de performances du CPU et de la mémoire. Il s'agit d'un outil Windows, mais il a également un certain support pour l'analyse des données collectées sur les machines Linux. Il fonctionne pour une grande variété de scénarios, mais dispose d'un certain nombre de fonctionnalités spéciales pour enquêter sur les problèmes de performances dans le code écrit pour le runtime .NET.
Si vous n'êtes pas familier avec PerfView, il existe des tutoriels vidéo perfview. En outre, le blog de Vance Morrison donne une vue d'ensemble et de démarrage des informations.
Veuillez consulter la page de téléchargement de PerfView pour le lien et les instructions de téléchargement de la version actuelle de PerfView.
PerfView nécessite .NET Framework 4.7.2 ou version ultérieure, qui est largement disponible pour toutes les versions prises en charge de Windows.
PerfView est construit sur une bibliothèque appelée Microsoft.Diagnostics.Tracing.TraceEvent, qui sait comment collecter et analyser le traçage des événements pour les données Windows (ETW) et EventPipe (.NET Core Trace). Ainsi, s'il existe des informations que Perfview collecte et processus que vous souhaitez vous manipuler par programme, vous seriez probablement intéressé par la documentation de la bibliothèque TraceEvent
Voir le document des scénarios pour déterminer quel est le meilleur choix pour ce que vous essayez de faire.
Le guide de l'utilisateur PerfView fait partie de l'application elle-même. De plus, vous pouvez cliquer sur le lien Guide des utilisateurs pour voir le fichier source GitHub HTML rendu dans votre navigateur. Vous pouvez également télécharger simplement perfView en utilisant les instructions ci-dessus et sélectionner l'élément de menu Guide de l'aide de l'utilisateur.
Lorsque vous avez des questions sur PerfView, votre première réaction devrait être de rechercher le guide des utilisateurs (Aide -> Guide de l'utilisateur) et voir si vous pouvez déjà trouver la réponse. Si cela ne fonctionne pas, vous pouvez poser une question en créant un nouveau problème de perfview. Indiquez votre question succincte dans le titre et, si nécessaire, donnez des détails dans le corps du problème, il existe une étiquette de problème appelée «question» que vous devez également utiliser qui marque votre problème en tant que question plutôt que dans un rapport de bogue. Si la question est spécifique à une trace particulière (* .etl.zip fichier), vous pouvez faire glisser ce fichier sur le problème et il sera téléchargé. Cela permet à ceux qui regardent des problèmes pour reproduire votre environnement et donner des réponses beaucoup plus détaillées et utiles.
Notez qu'une fois que vous avez répondu à votre question, si le problème est susceptible d'être courant, vous devriez fortement envisager de mettre à jour la documentation pour inclure les informations. La documentation n'est à peu près qu'un seul fichier https://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htm. Vous devrez cloner le référentiel et créer une demande de traction (voir OpenSourceGitWorkFlow pour les instructions pour configurer et créer une demande de traction.
Les bugs de signalement fonctionnent à peu près de la même manière que de poser une question. Il est très probable que vous voudrez inclure le fichier * .etl.zip nécessaire pour reproduire le problème ainsi que toutes les étapes et le comportement indésirable qui en résulte.
Si vous voulez simplement faire une enquête sur la performance, vous n'avez pas besoin de créer vous-même Perfview. Utilisez simplement celui de la page de téléchargement perfview. Cependant, si vous voulez de nouvelles fonctionnalités ou si vous souhaitez simplement contribuer à PerfView pour l'améliorer (voir les problèmes pour les choses que les gens veulent), vous pouvez le faire en suivant le reste de ces instructions.
Le seul outil dont vous avez besoin pour construire PerfView est Visual Studio 2022. L'édition communautaire Visual Studio 2022 peut être téléchargée gratuitement et a tout ce dont vous avez besoin pour récupérer PerfView à partir de GitHub, le construire et le tester. Nous nous attendons à ce que vous téléchargez Visual Studio 2022 Community Edition si vous n'avez pas déjà Visual Studio 2022.
Dans votre installation de Visual Studio, vous devez vous assurer que les charges de travail et les composants suivants sont installés:
Un fichier .vsconfig est inclus dans la racine du référentiel qui peut être utilisé pour installer les composants nécessaires. Lors de l'ouverture de la solution dans Visual Studio, il vous invitera à installer les composants qui, selon eux, manquent de votre installation. Alternativement, vous pouvez importer le .vsconfig dans le programme d'installation de Visual Studio.
Si vous obtenez des erreurs de compilation des projets ETWCLRCOMPiler, c'est probablement parce que vous n'avez pas installé le SDK Windows 10, ou que vous n'avez pas installé les LIBs-atténués Spectre. Veuillez vous référer à la section de dépannage pour plus d'informations.
La première étape pour démarrer avec le code source perfview consiste à cloner le référentiel GitHub PerfView. Si vous connaissez déjà le fonctionnement de Git, Github et Visual Studio 2022 Git, vous pouvez ignorer cette section. Cependant, sinon, la configuration d'un référentiel GitHub local avec Visual Studio 2022 vous mènera à travers les bases de cela. Tout ce qu'il suppose, c'est que Visual Studio 2022 est installé.
PerfView est développé dans Visual Studio 2022 en utilisant des fonctionnalités via C # 7.3.
Le fichier de solution est perfview.sln. L'ouverture de ce fichier dans Visual Studio (ou double-cliquez dessus dans l'explorateur Windows) et la sélection de la solution Build -> Build, la construire. Vous pouvez également créer la version non-DEBUG à partir de la ligne de commande à l'aide de MSBuild ou du fichier build.cmd à la base du référentiel. La version suit les conventions standard de Visual Studio, et le fichier perfview.exe résultant se termine dans SRC / perfview / bin / buildType /perfview.exe. Vous n'avez qu'à déployer celui-ci EXE pour l'utiliser.
La solution se compose de plusieurs projets, représentant des DLL de support et l'EXE principal. Pour exécuter PerfView dans le débogueur , vous devez vous assurer que le «projet de démarrage» est défini sur le projet «perfview» afin qu'il lance le principal exe. Si le projet PerfView dans l'explorateur de solutions (à droite) n'est pas audacieux, cliquez avec le bouton droit sur le projet PerfView et sélectionnez «Définir comme projet de démarrage». Après avoir fait cela, «démarrer le débogage» (F5) devrait fonctionner.
Vous voudrez déployer la version «libération» plutôt que la version «débogage» de PerfView. Ainsi, définissez d'abord votre configuration de build sur «libération» (fenêtre de texte dans la barre d'outils supérieure, ou cliquez avec le bouton droit sur le fichier .sln -> Configuration Manager -> Configuration de la solution active). Build suivant (build -> Build Solution (Ctrl-Shift-B)). Le résultat sera que dans le répertoire Src perfview bin net462 , il y aura entre autres choses un perfview.exe. Ce seul fichier est tout ce dont vous avez besoin pour déployer. Copiez-le simplement sur l'endroit où vous souhaitez déployer l'application.
L'une des choses inhabituelles à propos de PerfView est qu'il intègre ses DLL de support dans l'EXE lui-même, et ceux-ci sont déballés lors du premier lancement. Cela signifie qu'il y a des dépendances délicates dans la construction qui ne sont pas typiques. Vous verrez des erreurs que certaines DLL ne peuvent pas être trouvées s'il y avait des problèmes de construction plus tôt dans la construction. En règle générale, vous pouvez résoudre ce problème simplement en faisant une version normale (non nettoyée), car le fichier manquant sera présent à partir de la dernière compilation. Si cela ne résout pas les choses, voyez si la DLL recherchée existe réellement (si c'est le cas, la reconstruction devrait le réparer). Il peut être logique de descendre les projets un par un et de les construire individuellement pour voir lequel échoue «premier».
Une autre chose inhabituelle à propos de PerfView est qu'elle comprend un mécanisme d'extension complet avec des échantillons. Ce mécanisme d'extensions est le projet «global» (appelé cela parce que c'est l'extension globale dont les commandes n'ont pas de «portée» explicite) et doivent se référer à PerfView pour résoudre certaines de ses références. Ainsi, vous obtiendrez de nombreux problèmes «non trouvés» dans le projet «mondial». Ceux-ci peuvent être ignorés jusqu'à ce que vous obteniez toutes les autres parties de la construction.
L'un des invariants du repo est que si vous exécutez Visual Studio 2022 et que vous synchronisez et construisez simplement le fichier perfview.sln, il est censé «travailler». Si cela ne se produit pas et que les conseils ci-dessus n'aident pas, nous devons soit réparer le dépôt ou mettre à jour les conseils ci-dessus. Il est donc raisonnable d'ouvrir un problème de github. Si vous faites cela, l'objectif est de résoudre le problème, ce qui signifie que vous devez mettre suffisamment d'informations dans le problème pour ce faire. Cela comprend exactement ce que vous avez essayé et quels étaient les messages d'erreur.
Vous pouvez également créer PerfView à partir de la ligne de commande (mais vous avez toujours besoin de Visual Studio 2022 installé). Il s'agit d'un processus en deux étapes. Vous devez d'abord restaurer tous les packages NuGet nécessaires, puis vous faites la construction elle-même. Pour faire ceci:
Si vous obtenez une erreur "MSB8036: la version SDK Windows 10.0.17763.0 n'a pas été trouvée", ou vous obtenez une erreur "ASSERT.h '' non trouvée, ou franchement une erreur associée à la création des DLL ETWCLRProfiler, vous devez vous assurer que vous avez installé le SDK Windows 10. Malheureusement, cette bibliothèque a tendance à ne plus être installée avec Visual Studio, sauf si vous le demandez explicitement. Pour le réparer, lancez l'installateur Visual Studio, modifiez l'installation, puis regardez sous le développement de bureau C ++ et vérifiez que l'option Windows SDK 10.0.17763.0 est sélectionnée. Sinon, sélectionnez-le et continuez. Ensuite, essayez de construire à nouveau PerfView.
Si vous obtenez une erreur "MSB8040: Les bibliothèques Spectre-Acitiged sont requises pour ce projet", modifiez votre installation Visual Studio pour vous assurer que vous disposez de l'installation des composants Spectre Images (MSVC V143 - VS 2022.
PerfView a un certain nombre de projets * .test qui ont des tests automatisés. Ils peuvent être exécutés dans Visual Studio en sélectionnant le test -> Exécuter -> tous les élément de menu Tests. Pour les résultats les plus approfondis (et certainement si vous avez l'intention de soumettre des modifications), vous devez exécuter ces tests avec une construction de débogage du produit (voir la fenêtre de texte dans la barre d'outils supérieure, il dit «débogage» ou «version»). Si les tests échouent, vous pouvez cliquer avec le bouton droit sur le test échoué et sélectionner l'élément de menu contextuel «débogage» pour exécuter le test sous le débogueur pour déterminer ce qui n'a pas fonctionné.
Ce référentiel utilise Azure DevOps pour créer et tester automatiquement les demandes de traction, ce qui permet à la communauté de visualiser facilement les résultats de construction. La construction et l'état reflétés ici sont le statut de construction Azure DevOps de la branche principale .
️ Les constructions produites par Azure DevOps CI ne sont pas considérées comme des versions officielles de perfview et ne sont pas signées ou autrement validées pour la sécurité ou la sécurité. Cette intégration de construction est fournie comme une commodité pour les participants à la communauté, mais n'est pas approuvée par Microsoft et elle n'est en aucune façon considérée comme un canal de version officiel. Pour plus d'informations sur les versions officielles, consultez la page de téléchargement de Perfview.
Vous pouvez obtenir beaucoup de valeur de la base de code source simplement en étant en mesure de créer le code vous-même, de le déboguer ou de créer une fonctionnalité locale et spécialisée, mais la véritable puissance du logiciel open source se produit lorsque vous contribuez à la base de code partagée et ainsi aider la communauté dans son ensemble. Bien que nous encourageons cela, cela nécessite beaucoup plus d'efforts de votre part . Si vous êtes intéressé à intensifier, consultez le guide de contribution PerfView et les normes de codage PerfView avant de commencer.
Le code est divisé en plusieurs sections principales: