Okno dialogowe Zaawansowane ustawienia (Concurrency Visualizer)
Za pomocą okna dialogowego Ustawienia zaawansowane w Concurrency Visualizer można kontrolować sposób zbierania śladów. Okno dialogowe zawiera następujące karty: symbole, Tylko mój kod, buforowanie, filtrowanie, zdarzenia CLR, znaczniki, dostawcy i pliki.
Symbole
Concurrency Visualizer używa tych samych ustawień symboli jak Visual Studio Debugger.Concurrency Visualizer używa ustawień do rozpoznania stosów wywołań, które są skojarzone z danymi dotyczącymi wydajności. Podczas przetwarzania śladów, Concurrency Visualizer uzyskuje dostęp do serwerów symboli, które są określone na stronie ustawienia. Gdy dostęp do danych jest uzyskiwany za pośrednictwem sieci, przetwarzanie śladów spowalnia. W celu skrócenia czasu wymaganego do rozwiązania symboli można buforować je lokalnie.Jeśli pobrano symbole, Visual Studio załaduje je z lokalnej pamięci podręcznej.
Tylko mój kod
Domyślnie Tylko mój kod jest zestawem plików .exe i .dll, które są skojarzone z bieżącym rozwiązaniem w Visual Studio.Concurrency Visualizer ocenia ten zestaw plików przy użyciu funkcji Tylko mój kod do filtrowania stosów wywołań.Na karcie Tylko mój kod można dodać katalogi zawierające pliki .exe i .dll do lokalizacji, których używa Concurrency Visualizer dla funkcji Tylko mój kod.
Ścieżki plików .exe i .dll są przechowywane w pliku śledzenia podczas zbierania śladów. Zmiana tego ustawienia nie narusza żadnych poprzednio zebranych śladów.
Buforowanie
Concurrency Visualizer używa Śledzenia zdarzeń systemu Windows (ETW) podczas zbierania śladów. ETW używa różnych buforów podczas przechowywania zdarzeń. Domyślne ustawienia buforu ETW może nie być optymalne we wszystkich przypadkach i w niektórych przypadkach może spowodować problemy, takie jak zdarzenia utracone. Można użyć karty Buforowanie aby skonfigurować ustawienia bufora ETW.Aby uzyskać więcej informacji, zobacz Śledzenia zdarzeń i struktury EVENT_TRACE_PROPERTIES.
Filtr
Na karcie Filtrowanie można wybrać zestaw zdarzeń, które zbiera Concurrency Visualizer.Wybranie podzbioru zdarzeń ogranicza typy danych, które są wyświetlane w raportach, zmniejsza rozmiar każdego śladu i umożliwia skrócenie czasu wymaganego do przetwarzania śladów.
Zdarzenia CLR
Zdarzenia generowane przez Środowisko uruchomieniowe języka wspólnego (CLR) umożliwiają rozwiązanie przez Concurrency Visualizer zarządzanych stosów wywołań. Po wyłączeniu zbierania zdarzeń CLR zmniejszy się rozmiar śladu, ale niektóre stosy wywołań nie będą rozwiązane. W rezultacie niektóre działania wątków procesora mogą być niepoprawnie sklasyfikowane.
Zbieranie dla procesów natywnych
Domyślnie zdarzenia CLR są zbierane tylko wtedy, gdy jest profilowany jest proces zarządzany, ponieważ zwykle nie jest to potrzebne dla procesów natywnych. W niektórych przypadkach (na przykład, gdy proces natywny obsługuje CLR) może zajść potrzeba zbierania zdarzeń CLR dla procesu natywnego. Jeśli tak jest, zaznacz pole wyboru Zbieraj dla procesów natywnych.
Wyłącz zdarzenia uwalniania
Środowisko CLR generuje zdarzenia od dwóch dostawców: środowiska uruchomieniowego i uwalniającego. Jeśli chcesz zbierać zdarzenia środowiska uruchomieniowego CLR, ale chcesz uniknąć zbierania zdarzeń uwalniania, zaznacz pole wyboru Wyłącz zdarzenia uwalniania. Zmniejsza to rozmiar pliku śledzenia generowanego podczas zbierania, ale niektóre stosy mogą nie zostać rozwiązane.Aby uzyskać więcej informacji, zobacz Dostawcy CLR ETW.
Zdarzenia próbkowania
Można użyć zdarzeń próbkowania do zbierania stosów wywołań skojarzonych z wykonywaniem wątków.Zdarzenia te są zbierane około jeden raz w ciągu milisekundy dla wątków, które są wykonywane w bieżącym procesie.Po wyłączeniu zbierania zdarzeń próbkowania, zmniejszany jest rozmiar zebranego śladu, ale nie można wyświetlić wszystkich stosów wywołań skojarzonych z wykonywaniem wątków.
Zdarzenia GPU
Zdarzenia GPU są zdarzeniami generowanymi przez program DirectX.Po wyłączeniu zbierania zdarzeń GPU, zmniejszony zostaje rozmiar zebranego śladu, ale nie można wyświetlić żadnej Aktywności GPU w widoku Wykorzystanie lub Aktywności silnika DirectX w Widoku wątków.
Zdarzenia We/Wy pliku
Zdarzenia We/Wy pliku reprezentują uzyskanie dostępu do dysku w imieniu bieżącego procesu. Jeśli wyłączone zostaną zdarzenia We/Wy pliku, rozmiar śladu zostanie zmniejszony, ale Widok wątków nie będzie raportował żadnych informacji na temat kanałów dysków lub operacji dyskowych.
Zakładki
Na karcie Znaczniki można skonfigurować zestaw dostawców ETW, którzy są wyświetlani jako znaczniki w Concurrency Visualizer. Można również filtrować zbieranie Znaczników na podstawie poziomu ważności i kategorii ETW. W przypadku użycia Concurrency Visualizer SDK oraz własnego dostawcy Znaczników, można zarejestrować go tutaj tak, żeby pokazywał się w Widoku wątków.
Dodawanie nowego dostawcy
Jeśli kod używa Concurrency Visualizer SDK lub generuje zdarzenia ETW, które są zgodne z konwencją EventSource można przeglądać te zdarzenia w Concurrency Visualizer po zarejestrowaniu ich w tym oknie dialogowym.
W polu Nazwa wprowadź nazwę, która opisuje typy zdarzeń generowanych przez dostawcę. W polu Identyfikator GUID należy wprowadzić identyfikator GUID, który jest skojarzony z tym dostawcą. (Identyfikator GUID jest skojarzony z każdym dostawcą ETW).
Opcjonalnie można określić, czy należy filtrować zdarzenia od tego dostawcy, w oparciu o kategorię lub poziom ważności. Można użyć pola kategorii do filtrowania opartego na kategoriach Concurrency Visualizer SDK. Aby to zrobić, wprowadź ciąg kategorii lub zakresów kategorii rozdzielony przecinkami. To określa kategorie zdarzeń bieżącego dostawcy do pokazania. W przypadku dodania dostawcy EventSource, można użyć pola kategorii do filtrowania po słowie kluczowym ETW. Ponieważ słowo kluczowe jest maską bitową, można użyć ciągu liczb całkowitych, rozdzielonych przecinkami, aby określić które bity maski są ustawione.Na przykład "1,2" ustawia bit pierwszy i drugi, co jest tłumaczone jako 6 w systemie dziesiętnym.
Można użyć listy posortowanej po poziomie ważności aby odfiltrować zdarzenia, których poziom ważności lub ETW jest mniejszy niż określona wartość.
Konfigurowanie istniejącego dostawcy
Aby edytować ustawienia, które są skojarzone z istniejącym dostawcą, wybierz go z listy, a następnie kliknij przycisk Edytuj dostawcę. Można zmienić nazwę, identyfikator GUID i ustawienia filtrowania.
Odfiltrowanie Danych znaczników z Raportów Concurrency Visualizer
Jeśli dane dla określonego dostawcy nie mają być wyświetlane w przyszłych śladach, należy wyczyścić pole wyboru obok dostawcy, który ma zostać usunięty.
Pliki
Na karcie Pliki można określić katalog, w którym mają być przechowywane pliki śledzenia za każdym razem, kiedy ślad jest zbierany. Concurrency Visualizer generuje cztery pliki dla każdego śladu, który zbiera:
Plik dziennika śledzenia zdarzeń (ETL) w trybie jądra (*.kernel.etl)
Plik dziennika śledzenia zdarzeń w trybie użytkownika (*.user.etl)
Plik danych Concurrency Visualizer (*.CVData)
Plik śladu Concurrency Visualizer (*.CVTrace)
Dwa pliki ETL przechowują surowe dane śledzenia a dwa pliki Concurrency Visualizer przechowują dane przetworzone. Surowe pliki ETL zazwyczaj nie są używane po przetworzeniu śladu. Wybieranie pliki usuwanie zdarzeń śledzenia dziennika (ETL) po analizie pole wyboru zmniejsza ilość danych śledzenia, który jest przechowywany na dysku twardym.