Welches Leistungstool soll ich verwenden? (C#, Visual Basic, C++, F#)
Visual Studio bietet eine Vielzahl von Profilerstellungstools, um Ihnen bei der Diagnose von unterschiedlichen Leistungsprobleme zu helfen, die vom App-Typ abhängen. In diesem Artikel finden Sie Informationen zur Auswahl des richtigen Tools für Ihr Szenario und Ihren Anwendungstyp.
Einen allgemeinen Ansatz zur Optimierung von Code mithilfe der Profilerstellungstools finden Sie unter Anleitung für Anfänger zur Codeoptimierung.
Welches Tool soll ich verwenden?
In der folgenden Tabelle finden Sie eine Liste der verschiedenen von Visual Studio angebotenen Tools und gängige Szenarien für die Toolauswahl.
Leistungstool | BESCHREIBUNG | Wann sollte ich das Tool verwenden? |
---|---|---|
CPU-Auslastung | Zeigt an, womit die CPU Zeit aufwendet. | • Anfängliche Untersuchung allgemeiner Leistungsprobleme • Untersuchen einer hohen CPU-Auslastung des Servers • Untersuchen von DevOps-Szenarien, wenn z. B. Bestellungen nicht bei einer Einzelhandelswebsite ankommen • Optimieren der CPU-Auslastung • Untersuchen der Latenzzeit bei API-Aufrufen. |
Flammendiagramm | Ansicht im CPU-Auslastungstool, das eine alternative Visualisierung der Aufrufstruktur bietet | Untersuchen der Latenzzeit bei API-Aufrufen |
Langsamster Pfad | Ansicht im CPU-Auslastungstool, die zeigt, wofür der Großteil der CPU-Zeit in Ihrer Anwendung aufgewendet wurde | Untersuchen der Latenzzeit bei API-Aufrufen |
Speicherauslastung | Zeigt den Arbeitsspeicher Ihrer App an, damit Sie Probleme wie Speicherverluste ermitteln können. | • Optimieren der Speicherauslastung • Untersuchen einer nicht reagierenden Benutzeroberfläche • Untersuchen eines vermuteten Speicherlecks (nativer Code) |
.NET-Objektzuordnung | Zeigt die Zuordnungen von .NET-Objekten und Informationen zur Garbage Collection an | • Optimieren der .NET-Speicherauslastung • Analysieren der Garbage Collection |
Instrumentation | Zeigt die genaue Anzahl von Aufrufen und die Aufrufzeiten an. | Sie sind auf der Suche nach einem Tool wie „CPU-Auslastung“, aber Sie benötigen genaue Aufrufzahlen und Ergebnisse, die auf der Gesamtbetrachtungszeit basieren. Dieses Tool erfordert zusätzlichen Mehraufwand. |
Datei-E/A | Zeigt Ihre Datei-E/A-Vorgänge mit ihrer Dauer und der verarbeiteten Datenmenge an | Untersuchen einer nicht reagierenden Benutzeroberfläche |
PerfTips | Zeigt eine schnelle Messung der Leistungsinformationen während der Interaktion mit Ihrem Code an. | Während des Debuggens möchten Sie die verstrichene Zeit zwischen dem Vorgang im vorherigen Schritt (oder Haltepunkt) bis zum aktuellen Schritt oder Haltepunkt anzeigen. |
Ereignisanzeige | Zeigt HTTP-Anforderungen, Protokollmeldungen und Ausnahmen an | • Untersuchen der Latenzzeit bei API-Aufrufen • Untersuchen einer langsamen Anwendungsausführung auf einem Remotewebserver |
.NET Async | Zeigt die Verwendung von async/await in .NET-Apps an. | Untersuchen von vermuteten Leistungsproblemen mit asynchronem Code |
.NET-Indikatoren | Visualisierung für .NET-Zähler. | Sie benötigen eine Visualisierung für auf .NET-Zählern basierende Metriken, z. B. Ausnahmen pro Sekunde, Garbage Collection und CPU-Auslastung. |
Datenbank | Zeigt die Leistung Ihrer Datenbankabfragen an. | Untersuchen Sie die Leistung für Datenbankabfragen, die entweder ADO.NET oder Entity Framework Core verwenden. |
GPU-Nutzung | Zeigt allgemeine Informationen zur Hardwarenutzung Ihrer Direct3D-App an. | Untersuchen Sie, ob die Leistung Ihrer App CPU- oder GPU-abhängig ist. |
Anwendungszeitachse | Zeigt die Leistung der Benutzeroberfläche für XAML-Apps an. | Untersuchen Sie die Leistung der Benutzeroberfläche bei XAML-Apps, z. B. den Zeitaufwand für das Rendern von Frames. |
IntelliTrace | Debuggertool, mit dem Sie Ereignisse aufzeichnen und den Anwendungsstatus bei verschiedenen Ausführungspunkten untersuchen können. | Sie benötigen ein Tool, das den Anwendungsstatus an verschiedenen Stellen untersucht, nicht nur den aktuellen Anwendungszustand. |
Welche Tools werden für mein Projekt unterstützt?
In der folgenden Tabelle finden Sie eine Liste der von Visual Studio angebotenen Tools und der verschiedenen Projekttypen, für die sie verwendet werden können:
Leistungstool | .NET | C/C++ | UWP | ASP.NET/ASP.NET Core |
---|---|---|---|---|
CPU-Auslastung | ja | Ja | Ja | ja |
Speicherauslastung | ja | Ja | Ja | ja |
.NET-Objektzuordnung | ja | Nein | ja | ja |
Instrumentation | ja | Ja | Ja | ja |
Datei-E/A | ja | Ja | Ja | ja |
PerfTips | ja | Ja | Ja | ja |
Ereignisanzeige | ja | Ja | Ja | ja |
.NET Async | ja | Nein | ja | ja |
.NET-Indikatoren | Ja (nur .NET Core/5+) | nein | Nein | Ja (nur ASP.NET Core) |
Datenbank | Ja (nur .NET Core/5+) | nein | Nein | Ja (nur ASP.NET Core) |
GPU-Nutzung | ja | Ja | Ja | Nein |
Anwendungszeitachse | ja (XAML) | nein | Ja | nein |
Leistungs-Explorer | Nein | Nein | Nein | Nein |
IntelliTrace | Nur .NET mit Visual Studio Enterprise | nein | Nur .NET mit Visual Studio Enterprise | Nur .NET mit Visual Studio Enterprise |
Die folgenden Tools werden sowohl für Linux als Zielplattform als auch für Windows unterstützt:
- CPU-Auslastung
- Nachverfolgung der .NET-Objektzuordnung
- .NET Async
- .NET-Indikatoren
- Ereignisanzeige
- Datenbank
Informationen zur Verwendung der Profiler
Die folgenden Artikel und Blogbeiträge enthalten weitere Informationen, die Ihnen helfen, die Visual-Studio-Leistungstools effektiv zu verwenden.
- Leitfaden für Anfänger zum Optimieren von Code
- Verbessern der Leistung von Visual Studio mit dem neuen Instrumentierungstool
- Fallstudie: Doppelte Leistung in unter 30 Minuten
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für