Grundlagen zu Profilerstellungsmethoden
Von den Profilerstellungstools für Microsoft Visual Studio Premium werden fünf Methoden zum Sammeln von Leistungsdaten bereitgestellt. In diesem Thema werden die verschiedenen Methoden beschrieben sowie einige Szenarien aufgeführt, in denen die Datensammlung mithilfe einer bestimmten Methode erfolgen kann.
Methode |
Beschreibung |
---|---|
Sampling |
Sammelt statistische Daten zu den von einer Anwendung ausgeführten Aufgaben. |
Instrumentation |
Dient zum Sammeln ausführlicher Zeitsteuerungsinformationen zu den einzelnen Funktionsaufrufen. |
Parallelität |
Dient zum Sammeln ausführlicher Informationen zu Multithreadanwendungen. |
.NET-Speicher |
Dient zum Sammeln ausführlicher Informationen zur .NET-Speicherbelegung und zur Garbage Collection. |
Ebeneninteraktion |
Sammelt Informationen zu synchronen, an eine SqlServer-Datenbank gerichteten ADO.NET-Funktionsaufrufen. |
Mit einigen Profilerstellungsmethoden können auch weitere Daten gesammelt werden, z. B. Software- und Hardwareleistungsindikatoren. Weitere Informationen finden Sie unter Sammeln zusätzlicher Leistungsdaten.
Sampling
Bei der Samplingmethode für die Profilerstellung werden statistische Daten zu den Aufgaben gesammelt, die während einer Profilerstellung von einer Anwendung ausgeführt wurden. Die Samplingmethode ist einfach und wirkt sich kaum auf die Ausführung der Anwendungsmethoden aus.
Sampling ist die Standardmethode der Profilerstellungstools von Microsoft Visual Studio Premium. Es eignet sich für folgende Zwecke:
Erstuntersuchung der Anwendungsleistung
Untersuchung von Leistungsproblemen, die die Auslastung des Prozessors (CPU) betreffen
Bei der Samplingmethode für die Profilerstellung wird der Prozessor des Computers in festgelegten Abständen unterbrochen, und die Funktionsaufrufliste wird erfasst. Der Wert für exklusive Samplings wird für die ausgeführte Funktion, der Wert für inklusive Samplings für alle aufrufenden Funktionen aus der Aufrufliste erhöht. Samplingberichte enthalten die Gesamtwerte für das Modul, die Funktion, die Quellcodezeile und die Anweisung, für die das Profil erstellt wurde.
Das Samplingintervall wird vom Profiler standardmäßig auf CPU-Zyklen festgelegt. Sie können den Intervalltyp auf einen anderen CPU-Leistungsindikator sowie die Anzahl der Leistungsindikatorereignisse für das Intervall festlegen. Darüber hinaus können Sie auch Profilerstellungsdaten für die Ebeneninteraktion (TIP-Daten) sammeln, die Aufschluss über die Abfragen geben, die über ADO.NET an eine SQL Server-Datenbank gestellt wurden.
Sammeln von Leistungsstatistiken durch Sampling
Grundlagen zu Samplingdatenwerten in Profilerstellungstools
Datenansichten der Profiler-Samplingmethode
Instrumentation
Bei der Instrumentationsmethode zur Profilerstellung werden ausführliche Zeitsteuerungsinformationen für die Funktionsaufrufe in der Anwendung gesammelt, für die das Profil erstellt wird. Mögliche Anwendungsbereiche der instrumentierten Profilerstellung:
Untersuchung von Eingabe/Ausgabe-Engpässen (beispielsweise Datenträger-E/A)
Gründliche Untersuchung eines bestimmten Moduls oder einer bestimmten Gruppe von Funktionen
Bei der Instrumentationsmethode wird Code in eine Binärdatei eingefügt, um Zeitsteuerungsinformationen zu den einzelnen Funktionen in der instrumentierten Datei sowie alle von diesen Funktionen ausgeführten Funktionsaufrufe zu erfassen. Mit der Instrumentation werden für Vorgänge wie dem Schreiben einer Datei auch Aufrufe des Betriebssystems durch eine Funktion identifiziert. Die Gesamtzeit, die für eine Funktion oder für eine Quellcodezeile aufgewendet wurde, wird in den Instrumentationsberichten mithilfe von vier Werten dargestellt:
Verstrichene inklusive Zeit: Die Gesamtzeit, die für das Ausführen der Funktion oder Quellcodezeile aufgewendet wurde.
Inklusive Anwendungszeit: Die Zeit, die für das Ausführen der Funktion oder Quellcodezeile aufgewendet wurde, aber ohne die Zeit für Aufrufe des Betriebssystems.
Verstrichene exklusive Zeit: Die Zeit, die für das Ausführen von Code im Funktionstext oder in der Quellcodezeile aufgewendet wurde. Die Zeit für das Ausführen von Funktionen, die von der Funktion oder von der Quellcodezeile aufgerufen wurden, wird nicht einbezogen.
Exklusive Anwendungszeit: Die Zeit, die für das Ausführen von Code im Funktionstext oder in der Quellcodezeile aufgewendet wurde. Die Zeit für das Ausführen von Aufrufen des Betriebssystems sowie für das Ausführen der Funktionen, die von der Funktion oder von der Quellcodezeile aufgerufen wurden, wird nicht einbezogen.
Mithilfe der Instrumentationsmethode können auch CPU- sowie Softwareleistungsindikatoren gesammelt werden.
Grundlagen zu Instrumentationsdatenwerten in Profilerstellungstools
Sammeln ausführlicher Zeitsteuerungsdaten mithilfe der Instrumentation
Datenansichten der Profiler-Instrumentationsmethode
Parallelität
Bei der Parallelitätsprofilerstellung werden Informationen zu Multithreadanwendungen gesammelt. Bei der Profilerstellung für Ressourcenkonflikte werden immer dann ausführliche Aufruflisteninformationen gesammelt, wenn von konkurrierenden Threads auf den Zugriff auf eine freigegebene Ressource gewartet werden muss. Bei der Parallelitätsschnellansicht werden zusätzlich allgemeinere Informationen zur Interaktion der Multithreadanwendung mit sich selbst, der Hardware, dem Betriebssystem und anderen Prozessen auf dem Hostcomputer gesammelt:
Ressourcenkonfliktberichte enthalten für die Module, Funktionen, Quellcodezeilen und Anweisungen, in denen die Verzögerung aufgetreten ist, die Gesamtanzahl von Konflikten sowie die Gesamtwartezeit für eine Ressource. Die aufgetretenen Konflikte werden zudem in Zeitachsendiagrammen dargestellt.
In der Parallelitätsschnellansicht werden grafische Informationen angezeigt, die Sie verwenden können, um Leistungsengpässe, CPU-Unterauslastungen, Threadkonflikte, Threadmigration, Synchronisierungsverzögerungen, Bereiche überlappender E/A und andere Informationen zu suchen. Gegebenenfalls wird die grafische Ausgabe mit Aufruflisten- und Quellcodedaten verknüpft. Die Daten für die Parallelitätsschnellansicht können nur für Befehlszeilen- und Windows-Anwendungen gesammelt werden.
Grundlagen zu Ressourcenkonflikt-Datenwerten in Profilerstellungstools
Sammeln von Parallelitätsdaten zu Threads und Prozessen
Ansichten für Ressourcenkonfliktdaten
.NET-Arbeitsspeicher
Bei der .NET-Speicherbelegungsmethode zur Profilerstellung wird der Prozessor des Computers bei jeder Belegung eines .NET Framework-Objekts in einer Anwendung unterbrochen, für die das Profil erstellt wird. Wenn auch Objektlebensdauerdaten erfasst werden, unterbricht der Profiler den Prozessor nach jeder .NET Framework-Garbage Collection.
Vom Profiler werden Informationen zu Typ, Größe und Anzahl der Objekte gesammelt, die bei einer Speicherbelegung erstellt oder bei einer Garbage Collection zerstört wurden.
Bei Auftreten eines Speicherbelegungsereignisses werden weitere Informationen zur Funktionsaufrufliste gesammelt. Der Wert für exklusive Zuordnungen wird für die derzeit ausgeführte Funktion, der Wert für inklusive Zuordnungen für alle aufrufenden Funktionen aus der Aufrufliste erhöht. .NET-Berichte enthalten die Gesamtwerte für die Typen, Module, Funktionen, Quellcodezeilen und Anweisungen, für die das Profil erstellt wurde.
Bei Auftreten einer Garbage Collection werden vom Profiler Daten zu den zerstörten Objekten sowie Informationen zu den Objekten in den einzelnen Garbage Collection-Generationen gesammelt. Am Ende der Profilerstellung werden Daten zu den Objekten erfasst, die nicht explizit zerstört wurden. Der Bericht Objektlebensdauer enthält die Gesamtwerte für jeden Typ, der im Rahmen der Profilerstellung belegt wurde.
Die .NET-Speicherprofilerstellung kann sowohl im Sampling- als auch im Instrumentationsmodus verwendet werden. Der gewählte Modus besitzt keine Auswirkungen auf die Berichte zur Speicherbelegung oder zur Objektlebensdauer, die für die .NET-Speicherprofilerstellung spezifisch sind:
Wenn Sie die .NET-Speicherprofilerstellung im Samplingmodus ausführen, werden .NET Speicherbelegungsereignisse als Intervall verwendet. Darüber hinaus werden in den Berichten die Anzahl der belegten Objekte sowie die Gesamtanzahl der belegten Bytes als inklusive und exklusive Werte angezeigt.
Wenn Sie die .NET-Speicherprofilerstellung im Instrumentationsmodus ausführen, werden ausführliche Zeitsteuerungsinformationen sowie inklusive und exklusive Speicherbelegungswerte gesammelt.
Datenwerte zur Speicherbelegung und Objektlebensdauer in den Profilerstellungstools
Sammeln von Daten zur .NET-Speicherbelegung und Lebensdauer
.NET-Arbeitsspeicherdatenansichten der Profilerstellungstools
Ebeneninteraktion
Bei der Profilerstellung für die Ebeneninteraktion werden einer Profilerstellungsdatendatei Informationen zu synchronen ADO.NET-Aufrufen zwischen einer ASP.NET-Seite oder einer anderen Anwendung und einer SQL Server-Datenbank hinzugefügt. Die Daten umfassen Anzahl und Zeit der Aufrufe sowie die höchsten und niedrigsten Zeiten. Ebeneninteraktionsdaten können den Profilerstellungsdaten hinzugefügt werden, die mithilfe der Sampling-, Instrumentations-, .NET-Speicher- oder Parallelitätsmethode gesammelt wurden.
Von den Profilerstellungstools gesammelte Ebeneninteraktionsdaten
Gewusst wie: Sammeln von Ebeneninteraktionsdaten
Siehe auch
Aufgaben
Gewusst wie: Profilerstellung für eine Website oder Webanwendung mit dem Leistungs-Assistenten