Freigeben über


Auswählen zwischen Visual Studio Performance Profiler, Windows Performance Toolkit und PerfView

Dieses Handbuch bietet einen allgemeinen Vergleich der primären allgemeinen Leistungsprofiltechnologien bei Microsoft: Visual Studio Performance Profiler, Windows Performance Toolkit und PerfView.

Diese Tools können Ihnen helfen, die Leistungsmerkmale Ihrer Anwendungen unter Windows zu diagnostizieren und zu verstehen. Das Ziel dieses Leitfadens besteht darin, einen Überblick darüber zu geben, wann man sie übereinander verwenden kann, wobei jeder seiner Stärken hervorgehoben wird und einen kurzen Überblick über die darin enthaltenen Funktionen bietet.

Übersicht

Visual Studio Performance Profiler wird vom Visual Studio-Team erstellt, um die Leistungsmerkmale einer Anwendung, die sich im vorhandenen Visual Studio-Projektsystem befindet, schnell zu verstehen. Seine Stärke ist eng in das aktive Entwicklungsprojekt integriert, vereinfacht die Analyse der am häufigsten verwendeten Leistungsszenarien und eine schnelle, einfache Sammlung nur einer einzigen Anwendung.

Das Windows Performance Toolkit wird vom Windows-Team erstellt, um systemweite Merkmale des gesamten PCs gleichzeitig zu verstehen. Obwohl es von der Notwendigkeit her wuchs, Hardware und Treiber zu analysieren, ist es sehr effektiv, Softwareprobleme zu verstehen. Seine Stärke besteht darin, große Mengen von Informationen aus der gesamten Maschine gleichzeitig zu sammeln, sodass Multiprozessprobleme, diejenigen, die mit Hardware oder Treibern umgehen, und komplexe Szenarien für diese Tools gut aufeinander abgestimmt sind.

PerfView wird vom .NET-Team erstellt, um die Leistung von .NET-Anwendungen zu verstehen. Wie das Windows Performance Toolkit kann es große Mengen an Informationen vom gesamten Computer gleichzeitig sammeln. Es unterscheidet sich von der Möglichkeit, sehr detaillierte Informationen zu .NET-Laufzeitdiensten wie Garbage Collection, Just-in-Time-Kompilierung und dem verwalteten Threadpool anzuzeigen. PerfView kann für verwaltete, systemeigene und gemischte Anwendungen verwendet werden.

Es gibt Überlappungen zwischen diesen Tools. Häufig können Sie beginnen, ein Problem in einem Tool zu untersuchen und für eine andere Ansicht desselben Szenarios zu wechseln. In anderen Zeiten wird eines der Tools effektiver sein als die anderen.

Installation

Der Visual Studio Performance Profiler ist eine Komponente von Visual Studio selbst und kann über denselben Installations-Assistenten wie die restliche Entwicklungsumgebung installiert werden.

Das Windows Performance Toolkit kann separat als Teil des Windows Assessment and Deployment Kit heruntergeladen werden. Das Befehlszeilen-Leistungsaufzeichnungstool ist jedoch mit Windows 10 und Windows 11 vorinstalliert, wie wpr.exe es in der Standardpfadvariable von Shells wie PowerShell und der Eingabeaufforderung verfügbar ist.

Die Leistungsanalyse ist als Anwendung im Microsoft Store verfügbar.

PerfView ist als eigenständiger Download auf der PerfView GitHub Releases-Seite verfügbar. Eine erneute Installation ist nicht erforderlich.

Anpassen für erweiterte Leistungsanalyseszenarien

Das Windows Performance Toolkit bietet zusätzlich zwei Erweiterbarkeitspunkte, die erweiterte Leistungsanalyseszenarien unterstützen können.

  • Das Microsoft Performance Toolkit SDK verarbeitet die Verarbeitung von Ablaufverfolgungsdaten und ermöglicht Es Entwicklern, eigene Plug-Ins zu erstellen, die in der Windows-Leistungsanalyse angezeigt werden.
  • .NET TraceProcessing ermöglicht die Erstellung von benutzerdefinierten Tools, die Ablaufverfolgungsinformationen in resultierende Tabellen verarbeiten können, und ist besonders nützlich für die automatisierte Analyse von Massenablaufverfolgungsdaten.

PerfView basiert auf der .NET TraceEvent-Bibliothek , um Leistungsablaufverfolgungen programmgesteuert zu nutzen. TraceEvent kann unabhängig von PerfView verwendet werden, um benutzerdefinierte Analyse von Leistungsablaufverfolgungsdaten durchzuführen.

Hinweis

Damit Leistungsanalyseszenarien funktionieren, benötigen Sie Zugriff auf die Symbole, die mit der getesteten Windows-Anwendung korrelieren. Beim Erstellen mit Visual Studio befinden sie sich genauso wie in den Debugszenarioeinstellungen, die entweder mit Ihrer Lösung erstellt oder von Symbolservern erfasst werden. Beim Analysieren anderer Bibliotheken oder Komponenten müssen Sie die Symbole für diese Komponenten suchen, um Ihre Analyse abzuschließen.

Überlegungen zur Auswahl eines Tools

Das zu wählende Tool hängt vom Leistungsszenario ab, das Sie untersuchen möchten. Ein Vergleich der Funktionen und Merkmale der Tools finden Sie in der folgenden Tabelle:

Tipp

Beginnen Sie für eine allgemeine Regel nach Möglichkeit mit Visual Studio Profiling . Fahren Sie mit dem Windows Performance Toolkit oder PerfView fort, wenn Sie die Grenzen der Möglichkeiten der Visual Studio-Tools erreichen.

Situation Visual Studio-Leistungsprofiler Windows Performance Toolkit PerfView
Allgemeine Überlegungen zur Verwendung
Größe der Ablaufverfolgungsdatei ✔️ 🆗 🆗
Erwerb von Tools ✔️ ✔️ ✔️
Erweiterbarkeitskits ✔️ ✔️
Arbeitsumfang
Einzelner Prozess oder Projekt ✔️ 🆗 🆗
Mehrere Prozesse ✔️ ✔️
Hardwareaspekte
CPU-Auslastung ✔️ ✔️ ✔️
GPU-Nutzung ✔️ ✔️
Speicherauslastung ✔️ ✔️ ✔️
Geräteeingabe/-ausgabe ✔️ ✔️
Stromverbrauch ✔️
Systemhandles ✔️ ✔️
Überlegungen zur Unterstützung von Codesprachen
Unterstützung für C/C++ ✔️ ✔️ ✔️
Unterstützung für .NET ✔️ ✔️ ✔️
Unterstützung für JavaScript 🆗 🆗 🆗
Szenarioüberlegungen
Ereignisablaufverfolgung für Windows 🆗 ✔️ ✔️
Zusammensetzung ✔️
HTML/Edge/Internet Explorer/Webview ✔️
XAML/WinUI 🆗 ✔️ ✔️
Audio/Video-Pipelines und Störungen ✔️
Datenbankanzeigedauer ✔️
Verwaltete Objektzuordnung und Garbage Collection ✔️ ✔️
Benutzerdefinierte Szenarien ✔️ ✔️

Schlüssel

  • ✔️ Gut unterstützt: Entwickelt für den vorgesehenen Vorgang und erzielt robuste und detaillierte Ergebnisse.
  • 🆗 Unterstützt: Erfordert möglicherweise zusätzliche Konfigurationen oder Schritte, um die gewünschten Ergebnisse zu erzielen. Kann einen begrenzten Aktionsbereich innerhalb der Kategorie enthalten.
  • ❌ Nicht unterstützt: Nicht für diese Verwendung konzipiert.

Allgemeine Überlegungen zur Verwendung

Für diejenigen, die gerade mit der Leistungsanalyse beginnen, empfehlen wir Visual Studio Performance Profiler als ein gut integriertes Feature in der vorhandenen Visual Studio-Entwicklungssuite. Wir empfehlen die Verwendung von Visual Studio Performance Profiler über PerfView, wenn sie Ihren Anforderungen entspricht.

Für komplexere Systemleistungsanalysen, die möglicherweise mehr Leistung und Vielseitigkeit erfordern, empfehlen wir das Windows Performance Toolkit, das aus zwei Tools besteht, die zum Ausführen von Leistungsanalyseaufgaben verwendet werden:

  • Der Windows Performance Recorder, der sowohl als Befehlszeilentool als auch mit einer grafischen Benutzeroberfläche verfügbar ist, ist für die Erfassung der Ablaufverfolgungssitzung verantwortlich.
  • Die Windows Leistungsanalyse wird später geöffnet, um die gesammelten Daten zu verarbeiten und eine hochgradig anpassbare Analyseansicht bereitzustellen.

Zu den Vorteilen, die Visual Studio Performance Profiler bietet, gehören:

  • Eine gute Einführung in die Leistungsanalyse in den hauptdomänen.
  • Es behandelt viele der Komplexitäten der Analyse und des Debuggens automatisch basierend auf der Projektkonfiguration.
  • Er hebt automatisch große Beunruhigungsbereiche hervor.
  • Es ist besser, sich auf nur eine Anwendung zu konzentrieren, mit einem kleineren, fokussierteren Dataset und einem kleineren Sammlungsbereich.
  • Ein speziellerer Fokus bedeutet weniger Auswirkungen auf andere Anwendungen und Computerhardware, während die Profilerstellung auftritt, eine reduzierte Gesamtgröße für die generierten und gespeicherten Ablaufverfolgungsdateien und eine erhöhte Verarbeitungsgeschwindigkeit für die Überprüfung von Informationen nach Abschluss der Sammlung.
  • Benötigt weniger Zeit, um eine Ablaufverfolgung zu starten und abzuschließen, mit einer schnelleren Möglichkeit zum Überprüfen und Drehen, da Visual Studio Performance Profiler nur mit der Anwendung und nicht mit dem gesamten System befasst ist.
  • Die Datenerfassung und die resultierende Analyse werden alle in Visual Studio durchgeführt, wobei Analyseseiten automatisch zum Abschluss der Sammlung gestartet werden. Die Berichtsansicht neigt auch automatisch dazu, die Aufmerksamkeit auf Hotspots oder Aktionsbereiche zu konzentrieren.

Einige der Vorteile, die das Windows Performance Toolkit bietet, umfassen:

  • Umfangreiche Dokumentationen und Blogs werden von den Windows-Teams für Leistung und Diagnose bereitgestellt, die Ihnen bei den ersten Schritten helfen.
  • Es ist besser, sehr große Dateien zu sammeln, insbesondere von Systemen, die mit Hintergrundaufgaben beschäftigt sind. Es handelt sich um ein Catch-All-Tool zum Sammeln von Informationen, die später in der Windows Leistungsanalyse-Schnittstelle gefiltert werden.
  • Möglichkeit, für erweiterte Leistungsanalyseszenarien mithilfe von Erweiterbarkeitspunkten angepasst zu werden. (Siehe unten)

Einige der Vorteile, die PerfView bietet, umfassen:

  • Umfassende integrierte Dokumentation und im Internet zugängliche Anleitungen zu Videos , die in der App verknüpft sind.
  • Die Bereitstellung in Produktionsumgebungen ist einfach, indem sie einfach PerfView.exe kopieren.
  • Ein Flight-Recorder-Modus zum Erfassen von schwer zu reproduzierenden Problemen.
  • Sehr detaillierte Diagnose für .NET-Laufzeitdienste.
  • Erweiterbar für benutzerdefinierte Ansichten.

Arbeitsumfang

Bei Analysen, die eine einzelne Anwendung und insbesondere einen einzelnen Prozess umgeben, sind alle Werkzeuge sehr in der Lage, die Leistung zu sammeln und zu verstehen. Der Vorteil wäre jedoch bei Visual Studio Performance Profiler, insbesondere, wenn die Anwendungsquelle und das Projektsystem bereits verfügbar sind. Das Visual Studio Performance Profiler-Modul dient zum Sammeln von CPU-, GPU- und Speicherinformationen aus einer Binärdatei ähnlich optimiert wie die F5-Debugfunktion. Dieser Sammlungsmechanismus konzentriert sich zwar nur auf die einzelne Anwendung, bietet jedoch eine engere Wende und Entwicklerschleife.

Wählen Sie PerfView aus, wenn Visual Studio nicht über die erforderlichen Funktionen verfügt, kann aufgrund von Sammlungsanforderungen (häufig in Produktionsumgebungen) nicht ausgeführt werden, oder detailliertere .NET-Diagnosefunktionen sind erforderlich.

Für Situationen mit größerer Komplexität, die mehrere prozessübergreifende Anforderungen, Hardwaregeräte und deren Treiber umfassen, oder tief in Windows-Plattformtechnologien eintauchen, ist das Windows Performance Toolkit die optimale Wahl.

Hardwareaspekte

Visual Studio Performance Profiler, Windows Performance Toolkit und PerfView können CPU und Arbeitsspeicher für wichtige Hardwarekomponenten diagnostizieren, wobei Visual Studio Performance Profiler und Windows Performance Toolkit zusätzlich GPU unterstützen. Die Werkzeuge sind in der Regel bei der Einführungsanalyse in diesen Bereichen gut abgestimmt.

Die CPU-Auslastung kann mit allen drei Tools analysiert werden und wird in der Regel mithilfe des Samplings erfasst. Das Sampling erfasst Stapelablaufverfolgungen aus der Anwendung regelmäßig und stellt eine Rangfolge bereit, wie oft sie angezeigt werden. Beide Tools können dieses Verhalten anpassen, um stattdessen die Instrumentierung für die genaue Buchhaltung zu verwenden.

Die GPU-Verwendung kann sowohl mit Visual Studio Performance Profiler als auch mit dem Windows Performance Toolkit analysiert werden, wobei eine allgemeine Übersicht über Informationen erfasst wird.

Die Speicherauslastung kann mit allen drei Tools analysiert werden, die Informationen zum Heapbereich und den Stapeln sammeln, die mit Zuordnungen im Heap verknüpft sind.

Wenn komplexere Szenarien auftreten, z. B. das Analysieren von Netzwerken, Datenträgern, Geräten, Handles oder den Gesamtenergieverbrauch des Systems, ist das Windows Performance Toolkit für die Analyse besser gerüstet. Diese Daten werden am besten direkt vom Betriebssystem erfasst, da sie Anforderungen an die verschiedenen Hardwarekomponenten sendet. Das Windows Performance Toolkit wird zusammen mit dem Betriebssystem entwickelt, sodass es bereit ist und in der Lage ist, diese stärker systemorientierte Informationskategorie zu sammeln.

Überlegungen zur Unterstützung von Codesprachen

Das Windows Performance Toolkit konzentriert sich in erster Linie auf die Unterstützung von C und C++, da diese Sprachen in der Windows-Betriebssystemcodebasis verwendet werden.

Visual Studio Performance Profiler-Unterstützung konzentriert sich auf eine breitere Palette von Programmiersprachen, beginnend mit .NET-Ursprungstechnologien wie C# und ASP.NET dann nach außen erweitern.

PerfView unterstützt .NET- und systemeigene Anwendungen (C und C++). Sie verfügt über umfassende Kenntnisse von .NET-Runtimes und Funktionen für ASP.NET Webworkloads.

Dies ist nicht zu sagen, dass Visual Studio C- oder C++-Code nicht analysieren kann oder dass Windows Leistungsanalyse .NET-Anwendungen nicht analysieren kann oder dass PerfView Webanwendungen nicht analysieren kann. Es ist nur am besten, mit dem Tool zu beginnen, das am ehesten mit der analysierten Anwendung zusammenpasst, um die Stärken der einzelnen Tools zu nutzen.

Überlegungen zu Szenarien

Alle Tools enthalten mehrere szenariobasierte Optionen zum Studieren der Anwendungsleistung.

Visual Studio Performance Profiler-Optionen neigen dazu, sich auf .NET, Benutzeroberfläche (UI) und Datenbanken zu konzentrieren, die sich in der zu analysierenden Anwendung befinden.

Das Windows Performance Toolkit konzentriert sich in der Regel auf Betriebssystemkomponenten und Frameworks wie Komposition, Browseransichten und Störungen in Echtzeitverarbeitungspipelines.

Für Szenarien, die eine angepasstere Lösung erfordern, kann der Windows-Leistungsrekorder sowohl systemweite Sammlungs- als auch anwendungsbezogene Sammlungsdaten in einer einzigen Aufzeichnungssitzung kombinieren. Diese Funktionalität ermöglicht es einem Anwendungsentwickler, eine vollständige Lösung für die Bereitstellung für Kunden bereitzustellen, um Leistungsdaten von Hardware anzufordern, die sich von denen unterscheiden können, die zum Entwickeln des Produkts verwendet werden. Weitere Informationen zu diesem Mechanismus finden Sie in der Blogreihe "Benutzerdefinierte Profile erstellen" im Windows Performance and Diagnostics-Team.

PerfView richtet sich an umfassende Untersuchungen von .NET-Anwendungen und Laufzeiten, ist aber genauso in Untersuchungen auf Mehreren Prozess- und Betriebssystemebene geeignet.

Zusammenfassung

Visual Studio Performance Profiler, Windows Performance Toolkit und PerfView sind drei robuste Tools von Microsoft, die Ihnen zur Verfügung stehen, um die Leistung Ihrer Anwendung zu verstehen. Die Auswahl, welches Tool Ihren Anforderungen am besten entspricht, erfordert eine Vielzahl von Überlegungen zu Ihrer spezifischen Situation. Wir hoffen, dass dieser Leitfaden die für Sie benötigten Informationen bereitstellt, um eine kluge Leistungsanalyse zu treffen, sie können aber auch Ihr Feedback auf dieser Seite unten übermitteln oder für Probleme, die sich speziell auf die Windows-Entwicklungsleistung beziehen, ein Problem im Repository "Windows Dev Performance" einreichen.