Grundlagen zu Leistungssammlungsmethoden des Profilers

In diesem Dokument werden die Datenerfassungsmethoden beschrieben, die von Tools im Visual Studio-Leistungsprofiler verwendet werden.

Sampling

Mit Sampling werden statistische Daten über die Arbeit, die von einer Anwendung während der Profilerstellung durchgeführt wird, gesammelt und es ist ein guter Ausgangspunkt, um Bereiche zu finden, in denen Sie Ihre Anwendung beschleunigen können. Von der Samplingmethode werden in angegebenen Intervallen Informationen zu den in der Anwendung ausgeführten Funktionen gesammelt. Die Datensammlung erfolgt, indem in einem regelmäßigen Intervall oder einer Samplingfrequenz, z. B. jede Millisekunde, Informationen zur Anwendung erfasst werden. Die gesammelten Daten werden analysiert, um ein Modell der Ausführungszeit der Anwendung zu erstellen. Wenn Sie genaue Messungen von Aufrufzeiten benötigen oder zum ersten Mal nach Leistungsproblemen in einer Anwendung suchen, sollten Sie Sampling verwenden.

Das Sampling hat eine geringere Genauigkeit in Bezug auf die Anzahl der Aufrufe, verursacht aber nur geringe Kosten für den Profiler und hat kaum Auswirkungen auf die Ausführung der Anwendung, für die ein Profil erstellt wird. Zu den Tools im Leistungs-Profiler, die die Samplingmethode verwenden, gehört das Tool CPU-Auslastung.

Nachdem Sie die Datensammlung abgeschlossen haben, analysiert das CPU-Auslastungstool die erfassten Daten und zeigt den Bericht an.

Ablaufverfolgung

Die Ablaufverfolgung bietet bessere Informationen dazu, wie oft eine Methode ausgeführt wurde. Wenn Sie genaue Angaben über die Anzahl der Anrufe benötigen, verwenden Sie die Ablaufverfolgung. Die Ablaufverfolgung kann während der Sammlung die Leistung des Codes stärker beeinträchtigen, jedoch ist das Sampling nur mit einem geringen Mehraufwand verbunden. Darüber hinaus kann die Ablaufverfolgung langsamer zu analysieren sein, da es länger dauert, die Daten nach der Sammlung anzuzeigen.

Instrumentierung

Bei der Profilerstellung mit Instrumentierung werden detaillierte Informationen zu den Aufgaben gesammelt, die während einer Profilerstellung von einer Anwendung ausgeführt wurden. Die Datenerfassung erfolgt durch Tools, die entweder Code in eine Binärdatei einfügen, der Zeitinformationen erfasst, oder durch die Verwendung von Rückrufhooks, um während der Ausführung einer Anwendung exakte Informationen über die Zeit und Anzahl der Aufrufe zu erfassen und auszugeben. Im Vergleich zu Ansätzen, die auf Sampling basieren, hat die Instrumentierungsmethode einen hohen Aufwand. Zu den Tools im Leistungs-Profiler, die die Instrumentierung verwenden, gehören die Instrumentierungstools und das Tool .NET-Objektzuordnung.

Sampling im Vergleich zur Instrumentierung

Der Vorteil von Sampling besteht darin, dass weniger Aufwand betrieben werden muss und es aus diesem Grund wahrscheinlich statistisch repräsentativer für die Anwendung ist, die in der Produktion ausgeführt wird. Der Wert der Instrumentierungsprofilerstellung besteht darin, dass Sie genaue Zahlen abrufen können, wie oft Ihre Funktionen aufgerufen wurden. Auf diese Weise erhalten Sie wesentlich detailliertere Informationen als bei normalen Samplings, was die in einigen Szenarios benötigte Zeit verzerrt. Beispielsweise werden Funktionen, die nicht viel tun, aber häufig aufgerufen werden, mehr als in einem realen Szenario angezeigt.

Bei der Instrumentierung wird jeder in Ihrer Anwendung ausgewählte Funktionsaufruf kommentiert und instrumentiert, sodass er, wenn er aufgerufen wird, der Ablaufverfolgung zusammen mit Informationen zum Aufrufer hinzugefügt wird. Beim Sampling wird die aktuelle Ausführung der Aufrufliste aus der CPU in einem Intervall abgefragt, und dann wird jeder Frame der Ablaufverfolgung hinzugefügt.