Freigeben über


Ausführen von Profilerstellungstools für Release- oder Debugbuilds (C#, Visual Basic, C++, F#)

Visual Studio bietet eine Auswahl an Tools zur Leistungsmessung und Profilerstellung. Einige Tools, z. B. CPU-Auslastung und Speicherauslastung, können entweder auf Releasebuilds oder beim Debuggen Ihrer App (Debugbuild) ausgeführt werden. Im Fenster „Diagnosetools“ angezeigte Tools werden nur während einer Debugsitzung ausgeführt. Tools im Leistungs-Profiler werden ohne den Debugger ausgeführt, typischerweise bei Releasebuilds, und Sie analysieren die Ergebnisse, nachdem Sie die Option zum Beenden und Erfassen von Daten ausgewählt haben (für eine nachträgliche Analyse).

Der Performance Profiler und die debuggerintegrierten Diagnosetools bieten unterschiedliche Informationen und Erlebnisse. Während der Verwendung der Diagnosetools zeigt der Debugger Variablenwerte an und ermöglicht ihnen die Verwendung von Haltepunkten.

Leistungsangaben zu Releasebuilds im Leistungs-Profiler sind am präzisesten und genauesten. Mit diesen Tools erhalten Sie Ergebnisse, die näher an der Benutzererfahrung liegen. In der Regel ist dies die bevorzugte Methode für die Verwendung der Profilerstellungstools. Es kann jedoch Szenarien geben, in denen die Verwendung des Debuggers in einem Debugbuild dazu beitragen kann, das Leistungsproblem einzugrenzen, insbesondere, wenn Sie Debuggerfeatures wie Haltepunkte und Codeschritte verwenden möchten.

Beachten Sie Folgendes, um zwischen der Verwendung der Profilerstellungstools in Release- oder Debugbuilds zu entscheiden:

  • Releasebuilds bieten Optimierungen wie das Inlining von Funktionsaufrufen und Konstanten, das Entfernen nicht verwendeter Codepfade und das Speichern von Variablen auf Arten, die vom Debugger nicht verwendet werden können. Performancewerte in Debug-Builds sind weniger genau, weil Optimierungen in Debug-Builds fehlen.
  • Zusätzlich zu den Unterschieden zwischen Release-Builds und Debug-Builds verändert der Debugger selbst die Ausführungszeiten, da er notwendige Debugger-Vorgänge wie das Abfangen von Ausnahme- und Modulladeereignissen durchführt.
  • Bei Leistungsproblemen, die durch CPU-intensive Aufrufe verursacht werden, kann es zu erheblichen Leistungsunterschieden zwischen Release- und Debugbuilds kommen. Überprüfen Sie, ob das CPU-Leistungsproblem in Releasebuilds vorhanden ist.
  • Externe Leistungsprobleme, wie Datei-E/A- oder Netzwerkreaktionsprobleme, unterscheiden sich in einem Release-Build oder einem Debug-Build kaum.
  • Wenn das Problem nur bei Debugbuilds auftritt, müssen Sie die Tools wahrscheinlich nicht mit Releasebuilds ausführen.
  • Einige Tools, z. B. das .NET Object Allocation-Tool, sind nur im Performance Profiler (Nicht-Debugger-Szenarien) verfügbar.

Sammeln von Profilerstellungsdaten zu Releasebuilds

Führen Sie die Performance Profiler-Tools aus, um Leistungsdaten für Releasebuilds zu sammeln.

  1. Legen Sie bei geöffnetem Projekt in Visual Studio die Lösungskonfiguration auf Releasefest, und wählen Sie lokalen Windows-Debugger (oder lokalen Computer) als Bereitstellungsziel aus.

  2. Wählen Sie Debuggen>Performance Profileraus, oder drücken Sie ALT+F2.

  3. Wählen Sie auf der Startseite der Diagnosetools ein oder mehrere Tools aus, die ausgeführt werden sollen. Es werden nur die Tools angezeigt, die für den Projekttyp, das Betriebssystem und die Programmiersprache gelten.

    Screenshot des Performance Profiler.

    Tools, die in Kombination verwendet werden können, werden auf der Registerkarte " Flexibel " angezeigt. Tools, die isoliert verwendet werden müssen, werden auf der Registerkarte "Eigenständig" angezeigt. Wenn Copilot aktiviert ist, zeigt die Registerkarte " Empfohlen " die Tools an, die Copilot basierend auf der Analyse Ihres Quellcodes empfiehlt.

    Screenshot der Diagnosetools.

    Wählen Sie Alle Tools anzeigen aus, um auch Tools anzuzeigen, die für diese Diagnosesitzung deaktiviert sind.

  4. Um die Diagnosesitzung zu starten, wählen Sie Startaus.

    Während die Sitzung ausgeführt wird, zeigen einige Tools Diagramme von Echtzeitdaten auf der Seite mit Diagnosetools an und zeigen möglicherweise Optionen zum Anhalten und Fortsetzen der Datensammlung an.

    Screenshot der Datensammlung im Performance Profiler.

  5. Klicken Sie zum Beenden der Diagnosesitzung auf Sammlung beenden.

    Die analysierten Daten werden auf der Seite Bericht angezeigt.

    Weitere Informationen zu den Tools, die für die Verwendung in Releasebuilds verfügbar sind, und zur Analyse der Berichte finden Sie unter:

    Anmerkung

    Verwenden Sie den Neustart, um die Startseite zu überspringen und automatisch mit Ihren vorherigen Einstellungen zu starten, indem Sie Alt+F2 drücken oder auf Debuggen > Leistungs-Profiler klicken.

  6. (Optional) Speichern Sie den Bericht, und öffnen Sie ihn später über die Liste Zuletzt geöffneten Sitzungen auf der Startseite der Diagnosetools.

    Screenshot: Liste „Kürzlich geöffnete Sitzungen“ der Diagnosetools

Sammeln von Profilerstellungsdaten während des Debuggens

Wenn Sie mit dem Debuggen in Visual Studio beginnen, indem Sie Debuggen>Debuggen starten wählen oder F5 drücken, wird das Fenster Diagnosetools standardmäßig angezeigt. Um es manuell zu öffnen, wählen Sie Debug>Windows>Diagnosetools anzeigenaus. Im fenster Diagnosetools werden Informationen zu Ereignissen, Prozessspeicher, CPU-Auslastung und .NET-Leistungsindikatoren angezeigt.

Screenshot des Fensters

  • Verwenden Sie das Symbol Einstellungen auf der Symbolleiste, um auszuwählen, ob CPU-Auslastung, Arbeitsspeicherauslastungoder .NET-Leistungsindikatorenangezeigt werden sollen.
  • Wählen Sie Einstellungen in der Dropdownliste Einstellungen aus, um die Eigenschaftenseiten der Diagnosetools mit weiteren Optionen zu öffnen.

  • Wenn Sie Visual Studio Enterprise ausführen, können Sie IntelliTrace aktivieren oder deaktivieren, indem Sie zu Tools>Optionen>IntelliTrace-wechseln.

Die Diagnosesitzung endet, wenn Sie das Debuggen beenden.

Weitere Informationen zu den tools, die beim Debuggen verfügbar sind, finden Sie unter:

Registerkarte „Ereignisse“

Während einer Debugsitzung werden auf der Registerkarte "Ereignisse" des Fensters "Diagnosetools" die diagnoseereignisse aufgelistet, die auftreten. Mit den Kategoriepräfixen Haltepunkt-, Datei-und anderen können Sie die Liste schnell nach einer Kategorie durchsuchen oder die Kategorien überspringen, die Ihnen nicht wichtig sind.

Verwenden Sie die Filter-Dropdown-Liste, um Ereignisse anzuzeigen oder auszublenden, indem Sie spezifische Kategorien von Ereignissen auswählen oder die Auswahl aufheben.

Screenshot des diagnostischen Ereignisfilters.

Verwenden Sie das Suchfeld, um eine bestimmte Zeichenfolge in der Ereignisliste zu finden. Hier sind die Ergebnisse einer Suche nach dem Dateinamen Modell, die mit drei Ereignissen übereinstimmen:

Screenshot der Suche nach Diagnoseereignissen

Weitere Informationen finden Sie unter Suchen und Filtern der Registerkarte "Ereignisse" im Fenster "Diagnosetools".

Sammeln von Profilerstellungsdaten über die Befehlszeile

Um Leistungsdaten über die Befehlszeile zu messen, können Sie VSDiagnostics.exeverwenden, die entweder in Visual Studio oder den Remotetools enthalten ist. Dies ist hilfreich für die Erfassung von Leistungsablaufverfolgungen auf Systemen, auf denen Visual Studio nicht installiert ist, oder zum Skripting der Sammlung von Leistungsablaufverfolgungen. Ausführliche Anweisungen finden Sie unter Messen der Anwendungsleistung über die Befehlszeile.