Freigeben über


Verständnis von Methoden zur Profiler-Leistungsdatenerfassung

In diesem Dokument werden die Datensammlungsmethoden beschrieben, die tools im Visual Studio Performance Profiler verwenden.

Probenahme

Sampling sammelt statistische Daten über die Arbeit, die von einer Anwendung während der Profilerstellung durchgeführt wird, und es ist ein guter Ausgangspunkt, um Bereiche zu finden, um Ihre Anwendung zu beschleunigen. In bestimmten Intervallen sammelt die Sampling-Methode Informationen zu den Funktionen, die in Ihrer Anwendung ausgeführt werden. Die Datenerfassung erfolgt durch das Sammeln von Informationen zur Anwendung in regelmäßigen Intervallen oder Samplinghäufigkeiten wie jeder Millisekunden. Die gesammelten Daten werden analysiert, um ein Modell zu erstellen, das zeigt, wie die Zeit innerhalb der Anwendung verbracht wurde. Wenn Sie genaue Messungen der Anrufzeiten benötigen oder zum ersten Mal nach Leistungsproblemen in einer Anwendung suchen, sollten Sie Sampling verwenden.

Das Sampling hat weniger Genauigkeit bei der Anzahl der Anrufe, ist aber für den Profiler kostengünstig und hat wenig Auswirkungen auf die Ausführung der Anwendung, die profiliert wird. Tools im Performance Profiler, die die Samplingmethode verwenden, umfassen das CPU-Auslastungstool .

Nachdem Sie die Datensammlung abgeschlossen haben, analysiert das TOOL für die CPU-Auslastung 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 Messwerte zu Anrufzahlen benötigen, verwenden Sie die Ablaufverfolgung. Die Ablaufverfolgung kann eine größere Auswirkung auf die Leistung Ihres Codes während der Sammlung haben, das Sampling hat jedoch nur einen geringen Mehraufwand. Darüber hinaus kann das Tracing langsamer analysiert werden, da es länger dauert, die Daten nach der Erfassung anzuzeigen.

Instrumentation

Die Instrumentierungsprofilerstellung sammelt detaillierte Informationen über die Arbeit, die von einer Anwendung während der Profilerstellung durchgeführt wird. Die Datensammlung erfolgt durch Tools, die Code in eine Binärdatei einfügen, die Anzeigedauerinformationen erfasst, oder mithilfe von Rückruf-Hooks genaue Anzeigedauer- und Anrufanzahlinformationen während der Ausführung einer Anwendung erfassen und ausgeben. Die Instrumentierungsmethode hat einen hohen Overhead im Vergleich zu Sampling-basierten Ansätzen. Tools in der Performance Profiler, die Instrumentierung verwenden, umfassen die Instrumentierungstools und das .NET-Objektzuweisungstool .

Sampling im Vergleich zur Instrumentierung

Der Wert der Stichprobe besteht darin, dass sie weniger Aufwand hat und aus diesem Grund wahrscheinlicher statistisch repräsentativ für die anwendung ist, die in der Produktion ausgeführt wird. Der Wert der Instrumentierungsprofilerstellung besteht darin, dass Sie genaue Aufrufanzahlen abrufen können, wie oft Ihre Funktionen aufgerufen wurden. Auf diese Weise erhalten Sie wesentlich detailliertere Informationen als normale Samplings, was die in einigen Szenarien 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 der aktuelle Aufrufstapel, der ausgeführt wird, in regelmäßigen Abständen von der CPU abgefragt, und dann wird jeder Frame der Ablaufverfolgung hinzugefügt.