Zaawansowane okno dialogowe Ustawienia (Concurrency Visualizer)
Korzystając z okna dialogowego Advanced Ustawienia w wizualizatorze współbieżności, można kontrolować sposób zbierania śladów. Okno dialogowe zawiera karty symboli, Just My Code, buforowanie, filtrowanie, zdarzenia CLR, znaczniki, dostawcy i pliki.
Symbole
Wizualizator współbieżności używa tych samych ustawień symboli co debuger programu Visual Studio. Wizualizator współbieżności używa ustawień do rozpoznawania stosów wywołań skojarzonych z danymi wydajności. Podczas przetwarzania śladów wizualizator współbieżności uzyskuje dostęp do serwerów symboli określonych na stronie ustawień. Gdy te dane są dostępne za pośrednictwem sieci, przetwarzanie śledzenia spowalnia. Aby skrócić czas potrzebny do rozpoznawania symboli, można buforować symbole lokalnie. Jeśli symbole zostały pobrane, program Visual Studio załaduje je z lokalnej pamięci podręcznej.
Tylko mój kod
Domyślnie tylko mój kod jest zestawem .exe i .pliki dll skojarzone z bieżącym rozwiązaniem w programie Visual Studio. Wizualizator współbieżności ocenia ten zestaw plików, gdy używasz funkcji Just My Code do filtrowania stosów wywołań. Na karcie Just My Code (Tylko mój kod) możesz dodać katalogi zawierające .exe i .pliki dll do lokalizacji używanych przez wizualizator współbieżności tylko dla mojego kodu.
Ścieżki obiektu .exe i .pliki dll są przechowywane w pliku śledzenia podczas zbierania danych śledzenia. Zmiana tego ustawienia nie ma wpływu na żadne wcześniej zebrane ślady.
Buforowanie
Wizualizator współbieżności używa śledzenia zdarzeń dla systemu Windows (ETW) podczas zbierania śladu. Funkcja ETW używa różnych buforów podczas przechowywania zdarzeń. Domyślne ustawienia buforu ETW mogą nie być optymalne we wszystkich przypadkach, a w niektórych przypadkach mogą powodować problemy, takie jak utracone zdarzenia. Możesz użyć karty Buforowanie, aby skonfigurować ustawienia buforu ETW. Aby uzyskać więcej informacji, zobacz Śledzenie zdarzeń i struktura EVENT_TRACE_PROPERTIES.
Filtr
Na karcie Filtr możesz wybrać zestaw zdarzeń zbieranych przez program Concurrency Visualizer. Wybranie podzestawu zdarzeń ogranicza typy danych wyświetlanych w raportach, zmniejsza rozmiar każdego śledzenia i skraca czas wymagany do przetwarzania śladów.
zdarzenia CLR
Zdarzenia generowane przez środowisko uruchomieniowe języka wspólnego (CLR) umożliwiają wizualizatorowi współbieżności rozpoznawanie zarządzanych stosów wywołań. Jeśli wyłączysz zbieranie zdarzeń CLR, rozmiar śledzenia zostanie zmniejszony, ale niektóre stosy wywołań nie zostaną rozwiązane. W związku z tym niektóre działania wątków procesora CPU mogą być niepoprawnie podzielone na kategorie.
Zbieranie dla procesów natywnych
Domyślnie zdarzenia CLR są zbierane tylko wtedy, gdy proces zarządzany jest profilowany, ponieważ są one zwykle niepotrzebne dla procesów natywnych. W niektórych przypadkach (na przykład gdy proces natywny hostuje clR), może być konieczne zebranie zdarzeń CLR dla procesu natywnego. Jeśli tak jest, zaznacz pole wyboru Zbierz dla procesów natywnych.
Wyłączanie zdarzeń rundown
ClR generuje zdarzenia od dwóch dostawców: środowisko uruchomieniowe i uruchamianie. Jeśli chcesz zebrać zdarzenia środowiska uruchomieniowego CLR, ale chcesz uniknąć zbierania zdarzeń rundown, zaznacz pole wyboru Wyłącz zdarzenia rundown. Zmniejsza to rozmiar pliku śledzenia generowanego przez kolekcję, ale niektóre stosy mogą nie zostać rozwiązane. Aby uzyskać więcej informacji, zobacz CLR ETW Providers (Dostawcy CLR ETW).
Przykładowe zdarzenia
Przykładowe zdarzenia umożliwiają zbieranie stosów wywołań skojarzonych z wykonywaniem wątku. Te zdarzenia są zbierane około raz na milisekundy dla wątków wykonywanych w bieżącym procesie. Jeśli wyłączysz zbieranie przykładowych zdarzeń, rozmiar zebranego śledzenia zostanie zmniejszony, ale nie można wyświetlić żadnych stosów wywołań skojarzonych z wykonywaniem wątku.
Zdarzenia procesora GPU
Zdarzenia procesora GPU to zdarzenia generowane przez funkcję DirectX. Jeśli wyłączysz zbieranie zdarzeń procesora GPU, rozmiar zebranego śledzenia zostanie zmniejszony, ale nie można wyświetlić żadnych działań procesora GPU w widoku wykorzystania lub działania aparatu DirectX w widoku wątków.
Zdarzenia we/wy plików
Zdarzenia we/wy plików reprezentują dostęp do dysku w imieniu bieżącego procesu. Jeśli wyłączysz zdarzenia we/wy pliku, rozmiar śledzenia zostanie zmniejszony, ale widok wątków nie będzie zgłaszać żadnych informacji o kanałach dysku ani operacjach dysku.
Znaczniki
Na karcie Znaczniki można skonfigurować zestaw dostawców ETW, które są wyświetlane jako znaczniki w wizualizatorze współbieżności. Możesz również filtrować kolekcję Znaczniki na podstawie poziomu ważności i kategorii ETW. Jeśli używasz zestawu SDK concurrency Visualizer i używasz własnego dostawcy znaczników, możesz zarejestrować go tutaj, aby był wyświetlany w widoku wątków.
Dodawanie nowego dostawcy
Jeśli kod używa zestawu SDK wizualizatora współbieżności lub generuje zdarzenia ETW zgodne EventSource z konwencją, możesz wyświetlić te zdarzenia w wizualizatorze współbieżności, rejestrując je w tym oknie dialogowym.
W polu Nazwa wprowadź nazwę, która opisuje typy zdarzeń generowanych przez dostawcę. W polu IDENTYFIKATOR GUID wprowadź identyfikator GUID skojarzony z tym dostawcą. (Identyfikator GUID jest skojarzony z każdym dostawcą ETW).
Opcjonalnie możesz określić, czy należy filtrować zdarzenia od tego dostawcy, na podstawie kategorii lub poziomu ważności. Możesz użyć pola kategorii do filtrowania na podstawie kategorii zestawu SDK concurrency Visualizer. W tym celu wprowadź rozdzielany przecinkami ciąg kategorii lub zakresów kategorii. Określa kategorie zdarzeń w bieżącym dostawcy do pokazania. Jeśli dodajesz dostawcę EventSource , możesz użyć pola kategorii do filtrowania według słowa kluczowego ETW. Ponieważ słowo kluczowe jest maską bitów, można użyć rozdzielanego przecinkami ciągu liczb całkowitych, aby określić, które bity w masce są ustawione. Na przykład "1,2" ustawia pierwsze i drugie bity, a to przekłada się na 6 w przecinku.
Możesz użyć listy poziomów ważności, aby odfiltrować zdarzenia, które mają znaczenie lub poziom ETW, który jest mniejszy niż określona wartość.
Konfigurowanie istniejącego dostawcy
Aby edytować ustawienia skojarzone z istniejącym dostawcą, wybierz je na liście, a następnie wybierz przycisk Edytuj dostawcę. Możesz zmienić nazwę, identyfikator GUID i ustawienia filtrowania.
Filtrowanie danych znacznika z raportów concurrency Visualizer
Jeśli nie chcesz, aby dane określonego dostawcy pojawiły się w przyszłych śladach, wyczyść pole wyboru obok dostawcy, który chcesz usunąć.
Files
Na karcie Pliki można określić katalog, w którym pliki śledzenia są przechowywane za każdym razem, gdy dane śledzenia są zbierane. Wizualizator współbieżności generuje cztery pliki dla każdego śledzenia, które zbiera:
Plik dziennika śledzenia zdarzeń trybu jądra (ETL).kernel.etl*)
Plik dziennika śledzenia zdarzeń trybu użytkownika (.user.etl*)
Plik danych wizualizatora współbieżności (.CVData*)
Plik śledzenia wizualizatora współbieżności (.CVTrace*)
Dwa pliki ETL przechowują nieprzetworzone dane śledzenia, a dwa pliki Concurrency Visualizer przechowują przetworzone dane. Nieprzetworzone pliki ETL zwykle nie są używane po przetworzeniu śledzenia. Zaznaczenie pola wyboru Usuń pliki dziennika śledzenia zdarzeń (ETL) po analizie zmniejsza ilość danych śledzenia przechowywanych na dysku.