Perfview ist ein kostenloses Tool zur Leistungsanalyse, mit dem CPU und Speicherprobleme im Zusammenhang mit der Speicher isoliert werden können. Es ist ein Windows -Tool, aber es unterstützt auch einige Unterstützung für die Analyse von Daten, die auf Linux -Maschinen gesammelt wurden. Es funktioniert für eine Vielzahl von Szenarien, verfügt jedoch über eine Reihe von besonderen Funktionen für die Untersuchung von Leistungsproblemen in Code, die für die .NET -Laufzeit geschrieben wurden.
Wenn Sie mit Perfview nicht vertraut sind, gibt es Perfview -Video -Tutorials. Außerdem gibt Vance Morrisons Blog Übersicht und Erste Informationen.
Weitere Informationen finden Sie in der Seite PerfView Download für den Link und die Anweisungen zum Herunterladen der aktuellen Version von PerfView.
PerfView erfordert .NET Framework 4.7.2 oder höher, was für alle unterstützten Versionen von Windows weit verbreitet ist.
PerfView basiert auf einer Bibliothek namens Microsoft.Diagnostics.Tracing.TraceEvent, die weiß, wie man die Ereignisverfolgung für Windows (ETW) und EventPipe (.NET Core Trace) sammelt und analysiert. Wenn es also Informationen gibt, die Perfview sammelt und Prozesse sammelt, die Sie sich programmatisch manipulieren möchten, wären Sie wahrscheinlich an der Dokumentation der TraceEvent -Bibliothek interessiert
Sehen Sie sich das Szenarien -Dokument an, um festzustellen, welche die beste Wahl für das ist, was Sie versuchen.
Der Leitfaden des Perfview -Benutzerhandbuchs ist Teil der Anwendung selbst. Darüber hinaus können Sie auf den Link "Benutzerhandbuch" klicken, um die in Ihrem Browser gerendete GitHub -HTML -Quelldatei zu sehen. Sie können Perfview auch einfach mit den obigen Anweisungen herunterladen und das Menüelement des Benutzerhandbuchs auswählen.
Wenn Sie eine Frage zu PerfView haben, sollte Ihre erste Reaktion darin bestehen, den Benutzerhandbuch (Hilfe -> Benutzerhandbuch) zu durchsuchen und festzustellen, ob Sie die Antwort bereits finden können. Wenn dies nicht funktioniert, können Sie eine Frage stellen, indem Sie ein neues Perfview -Problem erstellen. Geben Sie Ihre Frage kurz und bündig im Titel an und geben Sie bei Bedarf Einzelheiten im Körper des Problems an, es gibt ein Problem mit dem Namen "Frage", das Sie auch verwenden sollten, das Ihr Problem eher als Frage als einen Fehlerbericht markiert. Wenn die Frage für eine bestimmte Trace (*.etl.zip -Datei) spezifisch ist, können Sie diese Datei auf das Problem ziehen und sie wird heruntergeladen. Dies ermöglicht es denjenigen, die nach Problemen suchen, um Ihre Umgebung zu reproduzieren und viel detailliertere und nützliche Antworten zu geben.
Beachten Sie, dass Sie, sobald Sie Ihre Frage beantwortet haben und das Problem wahrscheinlich häufig ist, nachdrücklich in Betracht ziehen, die Dokumentation so zu aktualisieren, dass die Informationen angegeben sind. Die Dokumentation ist so gut wie nur eine Datei https://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htm. Sie müssen das Repository klonen und eine Pull -Anforderung erstellen (siehe OpenSourcegitworkFlow, um Anweisungen zum Einrichten und Erstellen einer Pull -Anfrage zu erhalten.
Die Meldung von Fehler funktioniert genauso wie eine Frage zu stellen. Es ist sehr wahrscheinlich, dass Sie die *.etl.zip -Datei einbeziehen möchten, die erforderlich sind, um das Problem sowie alle Schritte und das daraus resultierende unerwünschte Verhalten zu reproduzieren.
Wenn Sie nur eine Leistungsuntersuchung durchführen möchten, müssen Sie selbst keine Perfview erstellen. Verwenden Sie einfach die von der Perfview -Download -Seite. Wenn Sie jedoch neue Funktionen wünschen oder einfach nur zu Perfview beitragen möchten, um es besser zu machen (sehen Sie Probleme für Dinge, die Menschen möchten), können Sie dies tun, indem Sie den Rest dieser Anweisungen folgen.
Das einzige Tool, das Sie zum Erstellen von Perfview benötigen, ist Visual Studio 2022. Die Visual Studio 2022 Community Edition kann kostenlos heruntergeladen werden und enthält alles, was Sie benötigen, um Perfview aus GitHub zu holen, zu erstellen und zu testen. Wir erwarten, dass Sie Visual Studio 2022 Community Edition herunterladen, wenn Sie noch nicht Visual Studio 2022 haben.
In Ihrer Installation von Visual Studio müssen Sie sicherstellen, dass die folgenden Workloads und Komponenten installiert sind:
Eine .vsconfig -Datei ist im Root des Repositorys enthalten, mit dem die erforderlichen Komponenten installiert werden können. Wenn Sie die Lösung in Visual Studio öffnen, werden Sie aufgefordert, alle Komponenten zu installieren, von denen sie glaubt, dass sie in Ihrer Installation fehlen. Alternativ können Sie das .vsconfig im Visual Studio Installer importieren.
Wenn Sie Fehler erhalten, die die ETWClRCompiler-Projekte zusammenstellen, liegt dies wahrscheinlich daran, dass Sie entweder die Windows 10 SDK nicht installiert haben oder die von Specree-gemilderten Libs nicht installiert haben. Weitere Informationen finden Sie im Abschnitt Fehlerbehebung.
Der erste Schritt, um mit dem Perfview -Quellcode zu beginnen, besteht darin, das Perfview Github -Repository zu klonen. Wenn Sie bereits mit der Funktionsweise von Git, GitHub und Visual Studio 2022 Git vertraut sind, können Sie diesen Abschnitt überspringen. Wenn nicht, wird das Einrichten eines lokalen Github -Repositorys mit Visual Studio 2022 -Dokument Sie durch die Grundlagen dazu führen. Es geht nur um Visual Studio 2022 installiert.
PerfView wird in Visual Studio 2022 entwickelt, indem Funktionen über C# 7.3 verwendet werden.
Die Lösungsdatei ist perfview.sln. Öffnen Sie diese Datei in Visual Studio (oder doppelt doppelt im Windows Explorer darauf) und die Auswahl von Build -> Build -Lösung erstellt sie. Sie können die Nicht-Debug-Version auch über die Befehlszeile mit MSBUILD oder der Datei Build.cmd an der Basis des Repositorys erstellen. Der Build folgt den Standard -Visual Studio -Konventionen, und die resultierende Perfview.exe -Datei endet in SRC/Perfview/bin/ buildtype /perfview.exe. Sie müssen dieses eine exe nur bereitstellen, um es zu verwenden.
Die Lösung besteht aus mehreren Projekten, die Support -DLLs und die Haupt -Exe darstellen. Um Perfview im Debugger auszuführen , müssen Sie sicherstellen, dass das "Startup -Projekt" auf das "Perfview" -Projekt eingestellt ist, damit das Haupt -Exe gestartet wird. Wenn das Perfview -Projekt im Lösungs -Explorer (rechts) nicht fett ist, klicken Sie mit der rechten Maustaste auf das Perfview -Projekt und wählen Sie 'Set als Startprojekt'. Nachdem dieses "Start Debugging" (F5) funktionieren sollte.
Sie möchten die "Release" anstelle der "Debug" -Version von Perfview bereitstellen. Setzen Sie daher zunächst Ihre Build -Konfiguration auf "Release" (Textfenster in der oberen Symbolleiste oder klicken Sie mit der rechten Maustaste auf die .sln -Datei -> Konfigurationsmanager -> Active Solution Configuration). Nächster Build (Build-> Build-Lösung (Strg-Shift-B)). Das Ergebnis wird sein, dass es im Verzeichnis src perfview bin net462 unter anderem eine Perfview.exe geben wird. Diese eine Datei ist alles, was Sie bereitstellen müssen. Kopieren Sie es einfach dorthin, wo Sie die App bereitstellen möchten.
Eines der ungewöhnlichen Dinge an Perfview ist, dass es seine Unterstützungs -DLLs in das Exe selbst einbezieht und diese beim ersten Start ausgepackt werden. Dies bedeutet, dass es schwierige Abhängigkeiten im Build gibt, die nicht typisch sind. Sie werden Fehler feststellen, dass bestimmte DLLs nicht gefunden werden können, wenn früher im Build Build -Probleme vorhanden sind. In der Regel können Sie dies einfach durch einen normalen (nicht-Clean-) Build durchführen, da die fehlende Datei aus der letzten Zusammenstellung vorhanden ist. Wenn dies nicht repariert wird, sehen Sie, ob die DLL -Suchausstattung tatsächlich existiert (wenn dies der Fall ist, sollte das Wiederaufbau sie beheben). Es kann sinnvoll sein, die Projekte nacheinander zu untergehen und sie einzeln aufzubauen, um zu sehen, welcher "zuerst" fehlschlägt.
Eine weitere ungewöhnliche Sache an Perfview ist, dass es einen Verlängerungsmechanismus mit Proben enthält. Dieser Erweiterungsmechanismus ist das "globale" Projekt (genannt das, weil es die globale Erweiterung ist, deren Befehle keinen expliziten "Bereich" haben) und sich auf Perfview beziehen muss, um einige seiner Referenzen zu lösen. Daher werden Sie viele "nicht gefundene" Probleme im "globalen" Projekt bekommen. Diese können ignoriert werden, bis Sie jeden anderen Teil des Builds arbeiten.
Einer der Invarianten des Repo ist, dass, wenn Sie Visual Studio 2022 ausführen und einfach die Datei perfview.sln synchronisieren und erstellen, "einfach funktionieren". Wenn dies nicht geschieht und der obige Rat nicht hilft, müssen wir entweder das Repo reparieren oder den oben genannten Rat aktualisieren. Somit ist es vernünftig, ein Github -Problem zu öffnen. Wenn Sie dies tun, ist es das Ziel, das Problem zu beheben, was bedeutet, dass Sie genügend Informationen in das Problem einfügen müssen, um dies zu tun. Dies schließt genau das ein, was Sie ausprobiert haben und was die Fehlermeldungen waren.
Sie können auch Perfview aus der Befehlszeile erstellen (müssen jedoch noch Visual Studio 2022 installiert werden). Es ist ein zweistufiger Prozess. Zuerst müssen Sie alle benötigten Nuget -Pakete wiederherstellen und dann den Build selbst durchführen. Um dies zu tun:
Wenn Sie einen Fehler "MSB8036: Die Windows SDK Version 10.0.17763.0 nicht gefunden", oder Sie erhalten einen "nicht gefundenen Fehler", oder ehrlich gesagt, dass ein Fehler, der mit dem Erstellen des ETWClrProfiler -DLLs verbunden ist, sicherstellen, dass Sie die Windows 10 -SDK installiert haben. Leider ist diese Bibliothek in der Regel nicht mehr mit Visual Studio installiert, es sei denn, Sie fragen sie ausdrücklich danach. Um es zu beheben, starten Sie das Visual Studio -Installationsprogramm, ändern Sie die Installation und schauen Sie dann unter die C ++ - Desktop -Entwicklung und überprüfen Sie, ob die Option Windows SDK 10.0.17763.0 ausgewählt ist. Wenn nicht, wählen Sie es aus und fahren Sie fort. Versuchen Sie dann erneut, Perfview zu erstellen.
Wenn Sie für dieses Projekt einen Fehler "MSB8040: Specree-Mitigated-Bibliotheken" erhalten, ändern Sie Ihre Visual Studio-Installation, um sicherzustellen, dass Sie über die 'MSVC V143-VS 2022 C ++ X64/X86 Specre-Mititated Libs (Last)' Component installiert sind.
PerfView hat eine Reihe von *. Testprojekten, die automatisierte Tests haben. Sie können in Visual Studio ausgeführt werden, indem Sie den Test -Test auswählen -> Ausführen -> Alle Tests. Für die gründlichsten Ergebnisse (und sicherlich, wenn Sie Änderungen einreichen möchten) müssen Sie diese Tests mit einem Debug -Build des Produkts ausführen (siehe Textfenster in der oberen Symbolleiste, heißt es in "Debug" oder "Release"). Wenn Tests fehlschlagen, können Sie mit der rechten Maustaste auf den fehlgeschlagenen Test klicken und den Menüelement "Debug" -Kontext auswählen, um den Test unter dem Debugger auszuführen, um herauszufinden, was schief gelaufen ist.
Dieses Repository verwendet Azure DevOps, um Pull -Anfragen automatisch zu erstellen und zu testen, sodass die Community die Erstellungsergebnisse leicht anzeigen kann. Der hier reflektierte Build und der Status sind der Azure DevOps Build -Status des Hauptzweigs .
Euen Builds, die von Azure DevOps CI produziert werden, gelten nicht als offizielle Aufbauten von Perfview und werden in keiner Weise für die Sicherheit unterzeichnet oder auf andere Weise validiert. Diese Build -Integration wird für die Teilnehmer der Community als Komfort bereitgestellt, wird jedoch weder von Microsoft befürwortet noch als offiziellen Release -Kanal in irgendeiner Weise angesehen. Informationen zu offiziellen Builds finden Sie auf der Seite Perfview Download.
Sie können viel Wert aus der Quellcode -Basis herausholen, indem Sie einfach den Code selbst erstellen, durch ihn debuggen oder eine lokale, spezialisierte Funktion erstellen. Die eigentliche Leistung der Open -Source -Software geschieht jedoch, wenn Sie zur gemeinsamen Codebasis beitragen und so die Community als Ganzes helfen. Obwohl wir dies fördern, erfordert es von Ihrer Seite erheblich mehr Aufwand . Wenn Sie daran interessiert sind, sich zu steigern, finden Sie in den Standards Perfview Contribution und Perfview Coding, bevor Sie beginnen.
Der Code ist in mehrere Hauptabschnitte unterteilt: