Analýza spotřeby prostředků a aktivity vlákna uživatelského rozhraní (XAML)
Pomocí profileru časové osy aplikace vyhledejte a opravte problémy s výkonem související s interakcemi v aplikacích XAML. Tento nástroj pomáhá zlepšit výkon aplikace XAML zobrazením podrobného zobrazení spotřeby prostředků aplikací. Můžete analyzovat čas strávený vaší aplikací přípravou rámců uživatelského rozhraní (rozložení a vykreslování), obsluhou požadavků na síť a disk a ve scénářích, jako je spuštění aplikace, načtení stránky a změna velikosti Windows.
Časová osa aplikace je jedním z nástrojů, které můžete spustit pomocí příkazu Debug>Profileru výkonu.
Tento nástroj nahrazuje odezvu uživatelského rozhraní XAML nástroj, který byl součástí sady diagnostických nástrojů ve starších verzích sady Visual Studio.
Tento nástroj můžete použít na následujících platformách:
- Univerzální aplikace pro Windows (ve Windows 10 a novějších)
- Windows 8.1
- Windows Presentation Foundation (.NET 4.0 a novější)
- Windows 7
Poznámka
Data o využití procesoru a spotřebu energie můžete shromažďovat a analyzovat společně s daty ApplicationTimeline. Prohlédněte si Spusťte nástroje pro profilování na release nebo debug buildy.
Shromáždění dat o časové ose aplikace
Rychlost odezvy aplikace můžete profilovat na místním počítači, připojeném zařízení, simulátoru nebo emulátorech sady Visual Studio nebo na vzdáleném zařízení. Viz Spuštění nástrojů pro profilaci v buildech vydaných verzí nebo ladění.
Spropitné
Pokud je to možné, spusťte aplikaci přímo na zařízení. Výkon aplikace pozorovaný v simulátoru nebo prostřednictvím připojení ke vzdálené ploše nemusí být stejný jako skutečný výkon zařízení. Na druhou stranu shromažďování dat pomocí nástrojů Visual Studio Remote Tools nemá vliv na data o výkonu.
Tady jsou základní kroky:
Otevřete aplikaci XAML.
Klikněte na Ladění / Profiler výkonu. V okně .diagsession by se měl zobrazit seznam nástrojů pro profilaci.
Vyberte časový plán aplikace a potom klikněte na Spustit v dolní části okna.
Poznámka
Může se zobrazit okno Řízení uživatelských účtů s žádostí o vaše oprávnění ke spuštění VsEtwCollector.exe. Klikněte na Ano.
Spusťte scénář, o jehož profilování v aplikaci máte zájem, abyste mohli shromažďovat údaje o výkonu.
Chcete-li profilaci zastavit, přepněte zpět do okna .diagsession a klikněte na Zastavit v horní části okna.
Visual Studio analyzuje shromážděná data a zobrazí výsledky.
Analýza dat časového profilování
Jakmile shromáždíte data profilace, můžete k zahájení analýzy použít tento postup:
Zobrazte informace v grafech využití vlákna uživatelského rozhraní a vizuální propustnosti (FPS) a pak pomocí panelů pro navigaci v časové ose vyberte časový rozsah, který chcete analyzovat.
Pomocí informací v grafech využití vláken uživatelského rozhraní nebo vizuální propustnosti (FPS) prozkoumejte podrobnosti v podrobnostech časové osy zobrazení a vyhledejte možné příčiny zdánlivě nedostatečné odezvy.
Sestavy scénářů, kategorií a událostí
Nástroj Časová osa aplikací zobrazuje data o načasování pro scénáře, kategorie a události, které souvisejí s výkonem XAML.
Časová osa diagnostické relace
Časová osa výkonu a diagnostiky
Pravítko v horní části stránky zobrazuje časovou osu profilovaných informací. Tato časová osa platí jak pro graf využití vlákna uživatelského rozhraní , tak pro graf vizuální propustnosti . Rozsah sestavy můžete zúžit přetažením navigačních panelů na časové ose a výběrem určité části časové osy.
Časová osa také zobrazuje všechny uživatelské značky, které jste vložili, a události životního cyklu aktivace aplikace.
Graf využití vláken uživatelského rozhraní
Graf využití vláken uživatelského rozhraní (%) je pruhový graf, který zobrazuje relativní dobu strávenou v kategorii během období kolekce.
Graf vizuální propustnosti (FPS)
Vizuální propustnost (FPS) spojnicový graf zobrazuje FPS vlákna uživatelského rozhraní a kompozice aplikace.
Podrobnosti časové osy
Zobrazení podrobností je místo, kde trávíte většinu času analýzou zprávy. Zobrazuje využití procesoru vaší aplikací zařazenou do kategorií subsystémem UI Framework nebo systémovou komponentou, která procesor spotřebovala.
Podporují se následující události:
Jméno | Popis |
---|---|
Analýza | Čas strávený analýzou souborů XAML a vytvářením objektů Rozšíření uzlu parsování v detailech časové osy zobrazí závislostní řetěz všech souborů XAML, které byly analyzovány kvůli hlavní události. Tento tip vám umožní identifikovat nepotřebné analýzy souborů a vytváření objektů ve scénářích citlivých na výkon a optimalizovat je. |
Rozložení | Ve velkých aplikacích se na obrazovce můžou současně zobrazovat tisíce prvků. Výsledkem tohoto zobrazení může být nízká frekvence snímků uživatelského rozhraní a odpovídající špatná odezva aplikace. Událost Rozložení přesně určuje náklady na rozložení jednotlivých prvků (tj. čas strávený v Arrange, Measure, ApplyTemplate, ArrangeOverride a MeasureOverride). Vytvoří také vizuální stromy, které se účastnily průběhu rozvržení. Pomocí této vizualizace můžete určit, které logické stromy se mají prořezat, nebo vyhodnotit jiné mechanismy odložení pro zefektivnění procesu rozložení. |
vykreslení | Čas strávený kreslením prvků XAML na obrazovku |
I/0 | Čas strávený načítáním dat z místního disku nebo síťových prostředků, ke kterým se přistupuje prostřednictvím rozhraní API systému Microsoft Windows Internet (WinINet). |
App Code | Čas strávený spouštěním kódu aplikace (uživatele), který nesouvisí s analýzou nebo rozložením |
Xaml – jiné | Čas strávený spouštěním kódu modulu runtime XAML |
Spropitné
Vyberte nástroj Využití procesoru společně s nástrojem Časová osa aplikace při zahájení profilování, abyste zobrazili metody aplikace, které se spouští ve vlákně uživatelského rozhraní. Přesunutí dlouhotrvajícího kódu aplikace do vlákna na pozadí může zlepšit odezvu uživatelského rozhraní.
Přizpůsobení podrobností časové osy
Panel nástrojů podrobností časové osy umožňuje řadit, filtrovat a specifikovat poznámky v položkách zobrazení podrobností časové osy.
Jméno | Popis |
---|---|
Seřadit podle | Seřaďte podle času zahájení nebo délky událostí. |
![]() |
Přidá nebo odebere kategorii nejvyšší úrovně rámce, která seskupuje události podle rámce. |
![]() |
Filtruje seznam podle vybraných kategorií a délky událostí. |
![]() |
Umožňuje zadat poznámky k událostem. |