Ausführen von Profilerstellungstools mit oder ohne Debugger (C#, Visual Basic, C++, F#)

Visual Studio bietet eine Auswahl an Tools für Leistungsmessung und Profilerstellung. Einige Tools, wie z. B. „CPU-Auslastung“ und „Speicherauslastung“, können mit oder ohne Debugger und in den Release- oder Debugbuildkonfigurationen 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, und Sie analysieren die Ergebnisse, nachdem Sie die Option zum Beenden und Erfassen von Daten ausgewählt haben (für eine Post-Mortem-Analyse).

Hinweis

Sie können die nicht in den Debugger integrierten Leistungstools unter Windows 7 und höher verwenden. Windows 8 oder höher ist erforderlich, um die in den Debugger integrierten Profilerstellungstools auszuführen.

Der nicht in den Debugger integrierte Leistungs-Profiler und die in den Debugger integrierten Diagnosetools bieten verschiedene Informationen und Funktionen. In den Debugger integrierte Tools zeigen Variablenwerte an und ermöglichen Ihnen, Breakpoints zu verwenden. Nicht in den Debugger integrierte Tools bieten Ihnen Ergebnisse, die sich näher an der Endbenutzeroberfläche befinden.

Berücksichtigen Sie bei der Entscheidung, welche Tools und Ergebnisse Sie nutzen möchten, folgende Optionen:

  • In den Debugger integrierte Tools im Vergleich zu nicht in den Debugger integrierten Tools

    • Externe Leistungsprobleme, wie z.B. Datei-E/A oder die Reaktionszeit des Netzwerks, werden in den Debuggertools ähnlich angezeigt wie in den nicht in den Debugger integrierten Tools.
    • Der Debugger selbst ändert Leistungszeiten, während er erforderliche Debuggervorgänge durchführt, wie z. B. das Abfangen von Ausnahmen und Modulladeereignissen.
    • Leistungsangaben zu Releasebuilds im Leistungs-Profiler sind am präzisesten und genauesten. In den Debugger integrierte Toolergebnisse sind besonders nützlich, wenn es um den Vergleich mit anderen debuggingbezogenen Messungen oder die Verwendung von Debuggerfeatures geht.
    • Einige Tool, darunter z. B. das Tool für die .NET-Objektzuordnung, steht nur in Szenarien ohne Debugger zur Verfügung.
  • Debug- im Vergleich zu Releasebuilds

    • Bei Problemen, die durch CPU-intensive Aufrufe ausgelöst werden, kann es möglicherweise zu erheblichen Leistungsunterschieden zwischen Release- und Debugbuilds kommen. Überprüfen Sie, ob das Problem in Releasebuilds vorhanden ist.
    • Wenn das Problem nur bei Debugbuilds auftritt, ist es wahrscheinlich, dass Sie die nicht in den Debugger integrierten Tools nicht ausführen müssen. Entscheiden Sie bei Releasebuildproblemen, ob die Features zum Ermitteln des Problems beitragen, die von den Tools bereitgestellt werden, die in den Debugger integriert sind.
    • Releasebuilds bieten Optimierungen wie Inlinefunktionsaufrufe und -konstanten, die ungenutzte Codepfade bereinigen und Variablen mit bestimmten Methoden speichern, sodass sie vom Debugger nicht genutzt werden können. Leistungsangaben in den Debugbuilds sind weniger genau, da Debugbuilds diese Optimierungen fehlen.

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. Klicken Sie auf Debuggen>Fenster>Diagnosetools anzeigen, um dieses Fenster manuell zu öffnen. Das Fenster Diagnosetools enthält Informationen über Ereignisse, den Prozessarbeitsspeicher, die CPU-Auslastung und .NET-Leistungsindikatoren.

Screenshot of the Diagnostic Tools window.

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. Klicken Sie auf Debuggen>Fenster>Diagnosetools anzeigen, um dieses Fenster manuell zu öffnen. Das Fenster Diagnosetools enthält Informationen über Ereignisse, den Prozessarbeitsspeicher und die CPU-Auslastung.

Screenshot of the Diagnostic Tools window

  • Klicken Sie auf das Symbol für Einstellungen in der Symbolleiste, um die Arbeitsspeicherauslastung, die UI-Analyse, und die CPU-Auslastung zu anzuzeigen.

  • 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 unter Extras>Optionen>IntelliTrace aktivieren oder deaktivieren.

Die Diagnosesitzung endet, wenn Sie das Debugging beenden.

Hinweis

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.

Weitere Informationen finden Sie in folgenden Quellen:

Die Registerkarte „Ereignisse“

Während einer Debugsitzung werden die auftretenden Diagnoseereignisse im Fenster „Diagnosetools“ auf der Registerkarte „Ereignisse“ aufgelistet. Mit den Kategoriepräfixen Haltepunkt, Datei u. a. können Sie schnell die Liste nach einer Kategorie durchsuchen oder die Kategorien überspringen, die für Sie gerade nicht relevant sind.

Verwenden Sie in der Dropdownliste Filter, um Ereignisse anzuzeigen oder auszublenden, indem Sie bestimmte Ereigniskategorien auswählen oder abwählen.

Screenshot of Diagnostic Event filter.

Screenshot of Diagnostic Event filter

Verwenden Sie das Suchfeld, um eine bestimmte Zeichenfolge in der Ereignisliste zu suchen. Dies sind die Suchergebnisse für den Dateinamen model, der mit drei Ereignissen übereinstimmt:

Screenshot of Diagnostic Event search.

Verwenden Sie das Suchfeld, um eine bestimmte Zeichenfolge in der Ereignisliste zu suchen. Dies sind die Suchergebnisse für die Zeichenfolge name, die mit vier Ereignissen übereinstimmt:

Screenshot of Diagnostic Event search

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

Sammeln von Profilerstellungsdaten ohne das Debuggen

Sie können zum Erfassen von Leistungsdaten ohne Debuggen die Leistungs-Profiler-Tools ausführen.

  1. Legen Sie mit einem in Visual Studio geöffneten Projekt die Konfiguration der Projektmappe auf Release fest, und wählen Sie als Bereitstellungsziel Lokaler Windows-Debugger (oder Lokaler Computer) aus.

  2. Klicken Sie auf Debuggen>Leistungs-Profiler, oder drücken Sie ALT+F2.

  3. Wählen Sie auf der Startseite der Diagnosetools mindestens ein Tools aus, das ausgeführt werden soll. Es werden nur die Tools gezeigt, die für den Projekttyp, das Betriebssystem und die Programmiersprache infrage kommen. Wählen Sie Alle Tools anzeigen, um auch Tools anzuzeigen, die für diese Diagnosesitzung deaktiviert sind.

    Screenshot of diagnostic tools.

    Screenshot of diagnostic tools

  4. Klicken Sie zum Starten der Diagnosesitzung auf Start.

    Während Sie die Sitzung ausführen, zeigen einige Tools auf der Seite der Diagnosetools Diagramme mit Echtzeitdaten sowie möglicherweise Optionen zum Anhalten und Fortsetzen der Datensammlung an.

    Screenshot of data collection on the Performance Profiler.

    Screenshot of data collection on the Performance Profiler

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

    Die analysierten Daten werden auf der Seite Bericht angezeigt.

Sie können die Berichte auch speichern und über die Liste der zuletzt geöffneten Sitzungen auf der Startseite der Diagnosetools öffnen.

Screenshot of Diagnostic Tools Recently Opened Sessions list.

Screenshot of Diagnostic Tools Recently Opened Sessions list

Weitere Informationen finden Sie unter:

Sammeln von Profilerstellungsdaten über die Befehlszeile

Um Leistungsdaten über die Befehlszeile zu messen, können Sie das Tool „VSDiagnostics.exe“ verwenden, das entweder in Visual Studio oder den Remotetools enthalten ist. Es ist nützlich für die Erfassung von Leistungsüberwachungen auf Systemen, auf denen Visual Studio nicht installiert ist, oder für die Erstellung von Skripts für die Sammlung von Leistungsüberwachungen. Ausführliche Anweisungen finden Sie unter Messen der Anwendungsleistung über die Befehlszeile.