Dokumentacja: Widoki Analizator wydajności systemu Windows
Narzędzia do analizy kompilacji języka C++ są dostępne w programie Visual Studio 2019 i nowszych wersjach. Aby wyświetlić dokumentację dla tej wersji, ustaw kontrolkę selektora wersji programu Visual Studio dla tego artykułu na program Visual Studio 2019 lub nowszy. Znajduje się on w górnej części spisu treści na tej stronie.
Ten artykuł zawiera szczegółowe informacje na temat poszczególnych widoków szczegółowych informacji kompilacji języka C++ dostępnych w usłudze Windows Analizator wydajności (WPA). Użyj tej strony, aby znaleźć:
- opisy kolumn danych; i
- dostępne ustawienia wstępne dla każdego widoku, w tym ich przeznaczenie i preferowany tryb wyświetlania.
Jeśli dopiero zaczynasz korzystać z usługi WPA, zalecamy zapoznanie się z podstawowymi informacjami na temat usługi WPA for C++ Build Insights.
Eksplorator kompilacji
Widok Eksploratora kompilacji służy do:
- diagnozowanie problemów z równoległością,
- określ, czy czas kompilacji jest zdominowany przez analizowanie, generowanie kodu lub łączenie
- identyfikowanie wąskich gardeł i niezwykle długich działań kompilacji.
Kolumny danych widoku Eksploratora kompilacji
Nazwa kolumny | opis |
---|---|
BuildTimelineDescription | Tekstowy opis osi czasu bieżącego działania lub właściwości występuje. |
BuildTimelineId | Identyfikator oparty na zera dla osi czasu bieżącego działania lub właściwości występuje na. |
Składnik | Składnik kompilowany lub połączony podczas emitowania bieżącego zdarzenia. Wartość tej kolumny to <Invocation X Info> , gdy żaden składnik nie jest skojarzony z tym zdarzeniem. X to unikatowy identyfikator liczbowy wywołania wykonywanego w momencie emitowania zdarzenia. Ten identyfikator jest taki sam jak ten w kolumnie InvocationId dla tego zdarzenia. |
Count | Liczba działań lub właściwości reprezentowanych przez ten wiersz danych. Ta wartość jest zawsze 1 i jest przydatna tylko w scenariuszach agregacji, gdy pogrupowano wiele wierszy. |
ExclusiveCPUTime | Ilość czasu procesora CPU w milisekundach używanych przez to działanie. Czas spędzony w zajęciach podrzędnych nie jest uwzględniony w tej ilości. |
Wyłączność | Milisekundowy czas trwania działania. Czas trwania działań podrzędnych nie jest uwzględniony w tej kwocie. |
InclusiveCPUTime | Ilość czasu procesora CPU w milisekundach używanych przez to działanie i wszystkie działania podrzędne. |
Inkluzywna racja | Milisekundowy czas trwania tego działania, w tym wszystkie działania podrzędne. |
InvocationDescription | Tekstowy opis wywołania, w ramach którego wystąpiło to zdarzenie. Opis zawiera zarówno cl.exe , jak i link.exe oraz unikatowy identyfikator wywołania liczbowego. Jeśli ma to zastosowanie, zawiera pełną ścieżkę do składnika skompilowanego lub połączonego podczas wywołania. W przypadku wywołań, które nie tworzą żadnego składnika lub dla tych, które tworzą wiele składników, ścieżka jest pusta. Identyfikator wywołania jest taki sam jak identyfikator w kolumnie InvocationId. |
Identyfikator wywołania | Wystąpił unikatowy identyfikator liczbowy wywołania tego zdarzenia. |
Nazwisko | Nazwa działania lub właściwości reprezentowanej przez to zdarzenie. |
Czas | Sygnatura czasowa identyfikująca, kiedy wystąpiło zdarzenie. |
Narzędzie | Narzędzie wykonywane po wystąpieniu tego zdarzenia. Wartość tej kolumny to CL lub Link. |
Typ | Typ bieżącego zdarzenia. Ta wartość to Działanie lub Właściwość. |
Wartość | Jeśli bieżące zdarzenie jest właściwością, ta kolumna zawiera jego wartość. Ta kolumna jest pusta, gdy bieżące zdarzenie jest działaniem. |
Ustawienia wstępne widoku Eksploratora kompilacji
Nazwa ustawienia wstępnego | Preferowany tryb wyświetlania | Jak stosować |
---|---|---|
Statystyka aktywności | Wykres/tabela | Użyj tego ustawienia wstępnego, aby wyświetlić zagregowane statystyki dla wszystkich działań Eksploratora kompilacji. W trybie tabeli sprawdź, czy kompilacja jest zdominowana przez analizowanie, generowanie kodu lub konsolidator. Zagregowane czasy trwania dla każdego działania są sortowane w kolejności malejącej. Przejdź do szczegółów, rozwijając górny węzeł, aby łatwo znaleźć, które wywołania zajmują najwięcej czasu dla tych najważniejszych działań. Jeśli chcesz, możesz dostosować ustawienia WPA, aby wyświetlić średnie lub inne typy agregacji. W trybie grafu sprawdź, kiedy każde działanie jest aktywne podczas kompilacji. |
Wywołania | Wykres | Przewiń w dół listę wywołań w widoku grafu posortowanego według czasu rozpoczęcia. Można go używać razem z widokiem procesora CPU (próbkowane), aby znaleźć wywołania, które są zgodne ze strefami niskiego wykorzystania procesora CPU. Wykrywanie problemów z równoległością. |
Właściwości wywołania | Table | Szybko znajdź kluczowe informacje dotyczące danego kompilatora lub wywołania konsolidatora. Określ jego wersję, katalog roboczy lub pełny wiersz polecenia używany do jego wywołania. |
Harmonogram | Wykres | Zobacz wykres słupkowy przedstawiający sposób równoległości kompilacji. Błyskawiczne identyfikowanie problemów z równoległością i wąskimi gardłami. Skonfiguruj usługę WPA, aby przypisywać różne znaczenia do pasków zgodnie z potrzebami. Wybierz opisy wywołań jako ostatnią pogrupowaną kolumnę, aby wyświetlić kolorowy wykres słupkowy wszystkich wywołań. Pomaga to szybko zidentyfikować czasochłonnych sprawców. Następnie powiększ i wybierz nazwę działania jako ostatnią pogrupowaną kolumnę, aby zobaczyć najdłuższe części. |
Pliki
Widok Pliki służy do:
- określanie, które nagłówki są najczęściej uwzględniane, i
- Ułatwiają podjęcie decyzji o tym, co należy uwzględnić w wstępnie skompilowanym nagłówku (PCH).
Kolumny danych widoku plików
Nazwa kolumny | opis |
---|---|
ActivityName | Działanie w toku, gdy to zdarzenie pliku zostało wyemitowane. Obecnie ta wartość jest zawsze analizowania. |
BuildTimelineDescription | * |
BuildTimelineId | * |
Składnik | * |
Count | * |
Głębokość | Położenie na podstawie zera w drzewie dołączania, w którym znajduje się ten plik. Zliczanie rozpoczyna się od katalogu głównego drzewa dołączania. Wartość 0 zwykle odpowiada plikowi .c/.cpp. |
Wyłączność | * |
Uwzględniona przez | Pełna ścieżka pliku, który zawierał bieżący plik. |
Uwzględniona ścieżka | Pełna ścieżka bieżącego pliku. |
Inkluzywna racja | * |
Identyfikator wywołania | * |
StartTime | Sygnatura czasowa reprezentująca czas, w którym emitowano bieżące zdarzenie pliku. |
Narzędzie | * |
* Wartość tej kolumny jest taka sama jak w widoku Eksplorator kompilacji.
Ustawienia wstępne widoku plików
Nazwa ustawienia wstępnego | Preferowany tryb wyświetlania | Jak stosować |
---|---|---|
Statystyki | Table | Sprawdź, które pliki miały najwyższy zagregowany czas analizowania, przeglądając listę w kolejności malejącej. Te informacje ułatwiają restrukturyzację nagłówków lub decydowanie o tym, co należy uwzględnić w PCH. |
Funkcje
Widok usługi Functions służy do identyfikowania funkcji z zbyt długim czasem generowania kodu.
Kolumny danych widoku funkcji
Nazwa kolumny | opis |
---|---|
ActivityName | Działanie w toku, gdy to zdarzenie funkcji zostało wyemitowane. Obecnie ta wartość to zawsze CodeGeneration. |
BuildTimelineDescription | * |
BuildTimelineId | * |
Składnik | * |
Count | * |
Czas trwania | Czas trwania działania generowania kodu dla tej funkcji. |
FunctionName | Nazwa funkcji przechodzącej generowanie kodu. |
Identyfikator wywołania | * |
StartTime | Sygnatura czasowa reprezentująca, kiedy emitowano bieżące zdarzenie funkcji. |
Narzędzie | * |
* Wartość tej kolumny jest taka sama jak w widoku Eksplorator kompilacji.
Ustawienia wstępne widoku funkcji
Nazwa ustawienia wstępnego | Preferowany tryb wyświetlania | Jak stosować |
---|---|---|
Statystyki | Table | Zobacz, które funkcje miały najwyższy zagregowany czas generowania kodu, przeglądając listę w kolejności malejącej. Mogą one wskazywać, gdzie kod nadmiernie używa słowa kluczowego __forceinline lub że niektóre funkcje mogą być zbyt duże. |
Harmonogram | Wykres | Przyjrzyj się temu wykresowi słupków, aby poznać lokalizację i czas trwania funkcji, które generują najwięcej czasu. Sprawdź, czy są one zgodne z wąskimi gardłami w widoku Eksplorator kompilacji. Jeśli to zrobią, podejmij odpowiednie działania, aby skrócić czas generowania kodu i korzystać z czasów kompilacji. |
Zobacz też
Wprowadzenie do szczegółowych informacji o kompilacji języka C++
Dokumentacja: polecenia vcperf
Samouczek: Podstawy Analizator wydajności systemu Windows
Analizator wydajności systemu Windows