Udostępnij za pośrednictwem


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