Instrumentierung in Visual Studio (C#, Visual Basic, C++, F#)

In diesem Artikel werden die Instrumentierungstools in Visual Studio beschrieben, die zum Sammeln exakter Aufrufzahlen und Aufrufzeiten verwendet werden.

Es gibt zwei Arten von Instrumentierung:

  • Statisch: Die Dateien des Programms vor der Ausführung wird geändert (VSInstr).

  • Dynamisch: Es wird ein dynamischer Prozess verwendet, wobei die Dateien nicht verändert werden. Die Dateien werden in den Arbeitsspeicher geladen und so geändert, damit sie die Instrumentierungsinformationen sammeln. Mithilfe des Tools für die dynamische Instrumentierung erhalten Sie genauere Informationen, aber für einen kleineren Teil des Programms. Sie können kleine Codeabschnitte untersuchen.

Die dynamische Instrumentierung ist aus folgenden Gründen hilfreich:

  • Die statische Instrumentierung unterbricht die Signierung mit starkem Namen. Bei der dynamischen Instrumentierung wird dieses Problem vermieden, da die Instrumentierung zur Laufzeit erfolgt.

  • Bei statischer Instrumentierung müssen Dateien in einer bestimmten Reihenfolge bereitgestellt werden, und das Tool weiß möglicherweise nicht, wo sich die Dateien befinden. Sie müssen VSInstr manuell ausführen. Mit dem neuen Instrumentierungstool müssen Sie die Dateien nicht suchen. Bei einem komplizierten Programm kann es sich bei der Suche nach allen Dateien um einen schwierigen, manuellen Prozess handeln.

Instrumentierung im Vergleich zum Sampling

Bei der Profilerstellung gibt es zwei Mechanismen zum Sammeln von Daten. Die Sammlung mit der Instrumentierung oder die Sammlung mithilfe von Samplings. Ausführliche Informationen finden Sie unter Grundlegendes zu Leistungssammlungsmethoden.

Tool für die dynamische Instrumentierung

Instrumentierung: Ab Visual Studio 2022, Version 17.5 ermöglicht das Instrumentierungstool die dynamische Instrumentierung für .NET Core, .NET 5 und höher sowie .NET Framework. Dieses Tool bietet die beste Leistung für Instrumentierungsszenarios. Greifen Sie mit dem Leistungs-Profiler (ALT+F2) auf dieses Tool zu. Weitere Informationen finden Sie unter Instrumentieren Ihrer Anwendung.

Ab Visual Studio 2022 Version 17.6 unterstützt das Instrumentierungstool auch C/C++, verwendet jedoch die statische Instrumentierung (VSInstr).

Informationen zum Verwenden dieses Tools über die Befehlszeile finden Sie unter Messen der Anwendungsleistung über die Befehlszeile.

Instrumentierung: Ab Visual Studio 2019, Version 16.9 ermöglicht das Instrumentierungstool die dynamische Instrumentierung für .NET Core, .NET 5 und höher sowie für .NET Framework (nicht für C/C++). Dieses Tool verwendet eine Version von „VSInstr.exe“, die dynamische Instrumentierung unterstützt. Greifen Sie mit dem Leistungs-Profiler (ALT+F2) auf dieses Tool zu. Für DLLs müssen Sie stattdessen das Befehlszeilentool (VSInstr) verwenden.

Tool für die statische Instrumentierung

VSInstr: Ab Visual Studio 2022, Version 17.6 Preview 2 verwendet das Instrumentierungstool VSInstr zur Unterstützung von C/C++. VSInstr wird auch für Befehlszeilenszenarien verwendet und funktioniert für .NET Framework sowie C/C++-Apps. Weitere Informationen finden Sie unter Sammeln ausführlicher Zeitsteuerungsdaten für eine eigenständige Anwendung über die Profiler-Befehlszeile.