Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mithilfe des Dialogfelds "Erweiterte Einstellungen" des Concurrency Visualizers können Sie steuern, wie Spuren gesammelt werden. Das Dialogfeld enthält Registerkarten für Symbole, Just My Code, Pufferung, Filterung, CLR-Ereignisse, Markierungen, Anbieter und Dateien.
Symbole
Die Konkurrenzanzeige verwendet dieselben Symboleinstellungen wie der Visual Studio-Debugger. Der Konkurrenz-Visualizer verwendet die Einstellungen, um Aufrufstapel aufzulösen, die mit Leistungsdaten verknüpft sind. Während der Verarbeitung von Ablaufverfolgungen greift der Konkurrenz-Visualizer auf die Symbolserver zu, die auf der Einstellungsseite angegeben sind. Wenn auf diese Daten über ein Netzwerk zugegriffen wird, verlangsamt sich die Protokollverarbeitung. Um die Zeit zu verringern, die zum Auflösen von Symbolen erforderlich ist, können Sie Symbole lokal zwischenspeichern. Wenn Symbole heruntergeladen wurden, lädt Visual Studio sie aus dem lokalen Cache.
Nur mein Code
Standardmäßig ist Just My Code der Satz von . exe und . DLL-Dateien , die der aktuellen Lösung in Visual Studio zugeordnet sind. Der Concurrency Visualizer wertet diese Gruppe von Dateien aus, wenn Sie die Funktion "Just My Code" zum Filtern von Aufrufstapeln verwenden. Auf der Registerkarte "Nur mein Code" können Sie Verzeichnisse hinzufügen, die .exe- und .dll-Dateien enthalten, zu den Speicherorten, die die Concurrency Visualizer für Just My Code verwendet.
Die Pfade der .EXE-Dateien und .DLL-Dateien werden in der Ablaufverfolgungsdatei gespeichert, wenn die Ablaufverfolgung erfasst wird. Das Ändern dieser Einstellung wirkt sich nicht auf zuvor gesammelte Ablaufverfolgungen aus.
Pufferung
Der Concurrency Visualizer verwendet die Ereignisablaufverfolgung für Windows (ETW), wenn er eine Ablaufverfolgung aufzeichnet. ETW verwendet verschiedene Puffer, während Ereignisse gespeichert werden. Die standardmäßigen ETW-Puffereinstellungen sind in allen Fällen möglicherweise nicht optimal, und in einigen Fällen können Probleme wie verlorene Ereignisse auftreten. Sie können die Registerkarte "Pufferung" verwenden, um ETW-Puffereinstellungen zu konfigurieren. Weitere Informationen finden Sie unter Ereignisablaufverfolgung und EVENT_TRACE_PROPERTIES Struktur.
Filter
Auf der Registerkarte "Filter" können Sie den Satz von Ereignissen auswählen, die von der Concurrency Visualizer erfasst werden. Wenn Sie eine Teilmenge von Ereignissen auswählen, werden die Datentypen begrenzt, die in den Berichten angezeigt werden, die Größe der einzelnen Ablaufverfolgungen reduziert und die Zeit reduziert, die zum Verarbeiten von Ablaufverfolgungen erforderlich ist.
CLR-Ereignisse
Durch die Common Language Runtime (CLR) generierte Ereignisse ermöglichen die Auflösung von verwalteten Aufrufstapeln im Konkurrenz-Visualizer. Wenn Sie die Sammlung von CLR-Ereignissen deaktivieren, wird die Größe der Ablaufverfolgung reduziert, aber einige Aufrufstapel können nicht aufgelöst werden. Daher sind einige CPU-Threadaktivitäten möglicherweise falsch kategorisiert.
Sammeln für systemeigene Prozesse
Standardmäßig werden CLR-Ereignisse nur erfasst, wenn ein verwalteter Prozess profiliert wird, da sie normalerweise nicht für systemeigene Prozesse erforderlich sind. In einigen Fällen (z. B. wenn ein systemeigener Prozess die CLR hostt), müssen Sie möglicherweise CLR-Ereignisse für einen systemeigenen Prozess sammeln. Wenn dies der Fall ist, aktivieren Sie das Kontrollkästchen "Für systemeigene Prozesse sammeln ".
Deaktivieren von Abbauereignissen
Die CLR generiert Ereignisse von zwei Anbietern: Laufzeit und Rundown. Wenn Sie CLR-Laufzeitereignisse sammeln möchten, aber das Sammeln von Rundown-Ereignissen vermeiden möchten, aktivieren Sie das Kontrollkästchen "Rundown-Ereignisse deaktivieren ". Dadurch wird die Größe der Ablaufverfolgungsdatei reduziert, die durch die Datenerfassung generiert wird, aber einige Stapel werden möglicherweise nicht aufgelöst. Weitere Informationen finden Sie unter CLR ETW-Anbieter.
Beispielereignisse
Sie können Beispielereignisse verwenden, um Aufrufstapel zu sammeln, die der Threadausführung zugeordnet sind. Diese Ereignisse werden ungefähr einmal pro Millisekunden für Threads gesammelt, die im aktuellen Prozess ausgeführt werden. Wenn Sie die Sammlung von Beispielereignissen deaktivieren, wird die Größe der erfassten Ablaufverfolgung reduziert, aber Sie können keine Aufrufstapel anzeigen, die der Threadausführung zugeordnet sind.
GPU-Ereignisse
GPU-Ereignisse sind Ereignisse, die von DirectX generiert werden. Wenn Sie die Sammlung von GPU-Ereignissen deaktivieren, wird die Größe der erfassten Ablaufverfolgung reduziert, aber Sie können keine GPU-Aktivität in der "Utilization"-Ansicht oder eine DirectX-Engine-Aktivität in der Threadsansicht anzeigen.
Datei-E/A-Ereignisse
Datei-E/A-Ereignisse stellen Zugriffe auf den Datenträger im Namen des aktuellen Prozesses dar. Wenn Sie Datei-I/O-Ereignisse deaktivieren, wird die Größe der Ablaufverfolgung reduziert, aber die Threads-Ansicht meldet keine Informationen zu Festplattenkanälen oder Festplattenoperationen.
Markierungen
Auf der Registerkarte Markierungen können Sie den Satz von ETW-Anbietern konfigurieren, die im Concurrency Visualizer als Marker angezeigt werden. Sie können die Marker-Auflistung auch nach Wichtigkeitsstufe und ETW-Kategorie filtern. Wenn Sie das Concurrency Visualizer SDK verwenden und Ihren eigenen Marker-Anbieter verwenden, können Sie es hier registrieren, sodass es in der Threads-Ansicht angezeigt wird.
Hinzufügen eines neuen Anbieters
Wenn Ihr Code das Concurrency Visualizer SDK verwendet oder ETW-Ereignisse generiert, die der EventSource Konvention folgen, können Sie diese Ereignisse im Concurrency Visualizer anzeigen, indem Sie sie in diesem Dialogfeld registrieren.
Geben Sie im Feld "Name " einen Namen ein, der die Vom Anbieter generierten Ereignistypen beschreibt. Geben Sie im FELD GUID die GUID ein, die diesem Anbieter zugeordnet ist. (Eine GUID ist jedem ETW-Anbieter zugeordnet.)
Optional können Sie angeben, ob Ereignisse von diesem Anbieter basierend auf Kategorie- oder Wichtigkeitsebene herausfiltert werden sollen. Sie können das Kategoriefeld verwenden, um basierend auf Concurrency Visualizer SDK-Kategorien zu filtern. Geben Sie dazu eine durch Trennzeichen getrennte Zeichenfolge von Kategorien oder Bereichen von Kategorien ein. Dadurch werden die Kategorien von Ereignissen im aktuellen Anbieter angegeben, die angezeigt werden sollen. Wenn Sie einen EventSource Anbieter hinzufügen, können Sie das Kategoriefeld verwenden, um nach dem ETW-Schlüsselwort zu filtern. Da das Schlüsselwort eine Bitmaske ist, können Sie eine durch Trennzeichen getrennte Zeichenfolge mit ganzzahligen Zahlen verwenden, um anzugeben, welche Bits in der Maske festgelegt sind. Beispielsweise legt "1,2" die ersten und zweiten Bits fest, und dies wird in 6 dezimal übersetzt.
Mithilfe der Liste auf Wichtigkeitsebene können Sie Ereignisse herausfiltern, die eine Wichtigkeit oder ETW-Ebene aufweisen, die kleiner als der angegebene Wert ist.
Konfigurieren eines vorhandenen Anbieters
Um Einstellungen zu bearbeiten, die einem vorhandenen Anbieter zugeordnet sind, wählen Sie sie in der Liste aus, und wählen Sie dann die Schaltfläche " Anbieter bearbeiten " aus. Sie können den Namen, die GUID und die Filtereinstellungen ändern.
Herausfiltern von Markierungsdaten aus Concurrency Visualizer-Berichten
Wenn Sie nicht möchten, dass Daten für einen bestimmten Anbieter in zukünftigen Ablaufverfolgungen angezeigt werden, deaktivieren Sie das Kontrollkästchen neben dem Anbieter, den Sie entfernen möchten.
Dateien
Auf der Registerkarte "Dateien " können Sie das Verzeichnis angeben, unter dem Ablaufverfolgungsdateien jedes Mal gespeichert werden, wenn eine Ablaufverfolgung erfasst wird. Der Konkurrenzvisualisierer generiert vier Dateien für jedes erfasste Protokoll.
Eine Kernelmodus-Ereignisablaufverfolgungsprotokoll-Datei (ETL) (.kernel.etl*)
Eine Ereignisablaufverfolgungsprotokolldatei für den Benutzermodus (.user.etl*)
Eine Concurrency Visualizer Datendatei (.CVData*)
Eine Konkurrenz-Visualisierer-Protokolldatei (.CVTrace*)
Die beiden ETL-Dateien speichern die unverarbeiteten Ablaufverfolgungsdaten, und die beiden Konkurrenzvisualisierungsdateien speichern die verarbeiteten Daten. Die unformatierten ETL-Dateien werden in der Regel nicht verwendet, nachdem ein Trace verarbeitet wurde. Indem Sie das Kontrollkästchen Delete Event Trace Log (ETL)-Dateien nach der Analyse auswählen, wird die Menge der auf der Festplatte gespeicherten Protokolldaten reduziert.