Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano sposób używania narzędzi do monitorowania wydajności z zestawu narzędzi Windows Performance Toolkit do tworzenia szczegółowych profilów wydajności dla aplikacji WinUI.
Jak używać narzędzia Windows Performance Recorder do monitorowania aplikacji WinUI?
Rejestrator wydajności systemu Windows (WPR) może służyć do tworzenia szczegółowych nagrań śledzenia zdarzeń systemu Windows (ETW) dotyczących zachowania systemu i aplikacji oraz użycia zasobów na podstawie wbudowanych profilów. Te nagrania ETW można następnie przetworzyć za pomocą Analizatora wydajności systemu Windows (WPA), aby utworzyć zestaw grafów i tabel w celu łatwiejszego użycia i szczegółowej analizy użycia procesora CPU, problemów z zasilaniem, słabej wydajności systemu lub aplikacji oraz innych problemów z wydajnością.
Uwaga / Notatka
Chociaż istnieje zarówno graficzny interfejs użytkownika, jak i wersje wiersza polecenia funkcji WPR, w tym temacie opisano tylko wersję graficznego interfejsu użytkownika (zobacz Wprowadzenie do funkcji WPR , aby uzyskać więcej informacji na temat obu wersji).
Profile WPR
Profile funkcji WPR służą do zbierania informacji na temat różnych aspektów i zachowań aplikacji.
Na poniższej ilustracji widoczne jest okno programu Windows Performance Recorder z profilem "Użycie procesora" (użycie procesora dla każdego procesora w systemie) oraz profilem "Aktywność XAML" (zdarzenia od dostawców związanych z XAML, takich jak WinUI).
Jak używać analizatora wydajności systemu Windows z aplikacjami WinUI?
WinUI to deklaratywne API w trybie zachowanego, w którym aplikacja opisuje drzewo elementów interfejsu użytkownika, a WinUI uruchamia układ i renderuje go. Odbywa się to w wątku interfejsu użytkownika w partiach o nazwie "klatki", co powinno zakończyć się szybko, najlepiej w czasie jednego cyklu odświeżania ekranu. Gdy ramki działają długo, nie tylko opóźnia aktualizacje dotarcia do ekranu, ale także uniemożliwia wątkowi interfejsu użytkownika obsługę wejścia. Powolne klatki, chociaż nie są jedyną przyczyną problemów z responsywnością, należą do najczęstszych.
Instalowanie wtyczki "Analiza ramek XAML"
WinUI rejestruje zdarzenia ETW, które śledzą uruchamianie i zatrzymywanie każdej ramki (pokazano na poniższym zrzucie ekranu tabeli WPA "Zdarzenia ogólne"). Jednakże ze względu na to, że czas trwania każdej klatki musi być obliczany ręcznie, trudno jest zidentyfikować przypadki klatek uruchamianych powoli.
Aby rozwiązać ten problem, nowa wtyczka tabeli "Analiza ramek XAML" jest dołączona do zestawu narzędzi Windows Assessment Toolkit (ADK) 10.1.26100.1 i nowszych. Ta tabela oblicza i przedstawia czas trwania każdej klatki (wraz z innymi operacjami czasochłonnymi).
Uwaga / Notatka
Tabela "Analiza ramek XAML" wymaga Windows Performance Analyzer (WPA) z Windows ADK 10.1.26100.1 lub nowszego. Wersja funkcji WPR używana do śledzenia nie ma znaczenia.
Po zainstalowaniu zestawu ADK tabela "Analiza ramek XAML" musi być włączona, edytując plik konfiguracji "perfcore.ini" w folderze WPA (zazwyczaj C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit). Aby to zrobić, zamknij wszystkie otwarte wystąpienia WPA, otwórz plik "perfcore.ini" w edytorze tekstowym, dodaj perf_xaml.dll do listy bibliotek DLL i zapisz oraz zamknij plik. Uruchom ponownie usługę WPA, która powinna teraz wyświetlać wykres "Analiza ramek XAML" w dolnej części sekcji Aktywność systemu.
Używanie wtyczki "Analiza ramek XAML"
Analiza ramek Xaml obsługuje dwa widoki (oba widoki pokazują te same kolumny):
- "Ciekawe ramki Xaml" (ustawienie domyślne) — pokazuje ramki WinUI oparte na heurystyce, które identyfikują te, które najprawdopodobniej spowodują problemy z czasem odpowiedzi. Odpowiadają to regiony, które rozpoczynają się operacjami, takimi jak inicjowanie interfejsu WinUI, nawigacja ramką lub wyświetlanie wysuwanego okna, a kończą się na zakończeniu następnej ramki. Te scenariusze zwykle obejmują obszerne zmiany drzewa UIElement i są najbardziej podatne na problemy z wydajnością.
- "Wszystkie informacje Xaml" — pokazuje wszystkie ramki WinUI ze wszystkich procesów znalezionych w śladzie. W przypadku operacji, takich jak ramka lub przekazywanie układu, wtyczka automatycznie oblicza i wyświetla czasy trwania na podstawie zdarzeń Uruchamiania i Zatrzymywania.
Poniższy zrzut ekranu przedstawia sposób przełączania się między widokami analizy ramek Xaml.
Oba widoki analizy ramek Xaml zawierają następujące kolumny:
| Tytuł | Wartość |
|---|---|
| Przetwarzanie | Nazwa i identyfikator procesu |
| Identyfikator wątku | Identyfikator wątku |
| Typ | Opisuje zdarzenie odpowiadające wierszowi. Możliwe wartości to:
|
| CzyJestInteresujące | Czy wiersz jest uznawany za interesujący. W widoku Ciekawe ramki Xaml są wyświetlane tylko interesujące wiersze. |
| Czas trwania (ms) | Czas trwania rzędów. Obliczane ze zdarzeń uruchamiania i zatrzymywania. |
| Waga (ms) | Rzeczywisty czas działania CPU odpowiadający czasowi trwania. |
| Początek (s) | Godzina rozpoczęcia zdarzenia |
| Zatrzymywanie (s) | Godzina zatrzymania zdarzenia |
Kolumny można sortować według typu lub czasu trwania, aby pomóc zidentyfikować potencjalne problemy, takie jak najdroższe, najdłuższe ramki czasu trwania w śladzie (zobacz poniższą ilustrację). Możesz również przejść do szczegółów określonych wierszy, aby zidentyfikować kosztowne operacje i potencjalne optymalizacje.