Sdílet prostřednictvím


Vylepšení rychlosti odezvy aplikace pro Windows

Tato příručka vám pomůže zlepšit rychlost odezvy vaší aplikace pro Windows tím, že optimalizuje latenci při spuštění a u důležitých interakcí. Rychlé a responzivní interakce (jinak označované jako interakce s nízkou latencí) vytvářejí lepší uživatelské prostředí. Pochopení očekávání interakce, měření aktuální doby trvání a nastavení cílů pro zlepšení v závislosti na třídě interakce může vést k významným vylepšením uživatelského prostředí a spokojenosti.

Podrobný průvodce optimalizací interakcí pro responzivní chování

Zákazníci se mohou cítit, když je pomalé spuštění aplikace, navigace v nabídce nebo načtení stránky nebo obsahu. Došli k očekávání rychlého a bezproblémového zážitku, a proto jsme sdíleli několik kroků a pokynů, abychom lépe pochopili tato očekávání.

Základní kroky pro optimalizaci latence jsou:

  1. Definujte scénář a přidejte události TraceLogging.

    Vytvořte seznam klíčových interakcí, které bude uživatel procházet při používání aplikace, jako je spuštění, otevření nabídky, přechod na novou stránku a vykreslování obsahu atd. Pro každou z těchto interakcí přidejte počáteční událost a zastavte událost, která se použije k měření a analýze. Přečtěte si další informace o tom, jak přidat TraceLogging, což je formát pro samo-popisující Trasování událostí pro Windows (ETW).

  2. Nastavte cíle na základě třídy interakce.

    Uživatelé mají různá očekávání týkající se výkonu a odezvy aplikace v závislosti na typu interakce. Například jak rychle se aplikace spustí a jak rychle se stránka načte. Představte si přijatelný rozsah uplynulého času, který uživatelům trvá dokončení klíčových interakcí ve vaší aplikaci. To může být v rozsahu od 200 milisekund (ms) do 5 sekund (s). Potom každému úkolu přiřaďte popisek třídy interakce s přidruženým cílem. Níže najdete několik základních pokynů a návrhy, jak můžete zahrnout uživatelské rozhraní, abyste zlepšili vnímání odezvy:

Popisek interakční třídy Vnímání uživatelů Rozsah zpoždění Příklady Navrhované uživatelské rozhraní
Rychlé Minimální znatelné zpoždění 100 - 200 milisekund Otevřete panel aplikací a otevřete nabídku pravého tlačítka.
Interaktivní Rychlé, ale ne rychlé 300 - 500 ms Ukončení aplikace, zobrazení výsledků hledání uložených v mezipaměti
Pauza Není rychlé, ale působí svižně 500 ms - 1 s Přejděte na jinou stránku, obnovte aplikaci z pozastaveného stavu a zobrazte výsledky hledání na webu. Úvodní animaci (např. přilétnout do nového obsahu) se dá použít k maskování času potřebného pro tento scénář.
Počkej Není rychlé kvůli množství práce pro scénář 1 – 3 sekundy Spuštění aplikace K zaznamenávání průběhu se může použít rotující nebo čekající kurzor. K maskování času potřebného pro tento scénář se mohou použít jak odchozí, tak vstupní animace (např. odlet staré stránky, přilet nové stránky).
Dlouhé čekání Už se necítí responzivní 2 – 5 sekund Spustí se velká aplikace (použití rozšířené úvodní obrazovky), spuštění streamu videa HD Zobrazí se "načítá uživatelské rozhraní" – pokud je to možné, zahrňte uživateli možnost zrušit. Uživatelské rozhraní pro načítání by se mělo zobrazit v rámci třídy Rychlé interakce. Uživatelské rozhraní načítání nemusí zobrazovat procento ani zbývající čas.
Zajatec Dlouhé čekání – vyhrazeno pro nevyhnutelně dlouhé/složité scénáře 5 až 10 sekund Přihlášení k systému Zobrazí se dialogové okno nebo načítací rozhraní – pokud je to možné, zahrňte možnost „zrušit“ pro uživatele. Dialogové okno by se mělo zobrazit ve třídě Rychlé interakce. Dialogové okno by mělo zobrazit procento nebo zbývající čas, pokud by to uživateli poskytlo užitečný kontext.
Dlouhotrvající Dlouhé operace – uživatelé pravděpodobně budou dělat více věcí najednou (přepnou na jiný úkol během operace). 10 - 30+ sekund Instalace nových funkcí nebo aktualizací, stahování velkých souborů Uživatelské rozhraní by mělo být navržené tak, aby odráželo možnost multitaskingu. Mělo by se zobrazit dialogové okno průběhu včetně odhadu dokončení (procento, zbývající čas atd.). Případně může uživatelské rozhraní úplně minimalizovat a upozornit uživatele pouze na dokončení scénáře pomocí informačního oznámení.
  1. Chcete-li zkontrolovat přesné doby trvání konkrétních interakcí, můžete zachytit a analyzovat trasování pomocí Analyzátoru výkonu systému Windows (WPA).

    • Před spuštěním záznamu uvedete testovací zařízení do režimu nečinnosti tím, že otevřete Správce úloh a zajistíte, aby využití procesoru bylo menší než 5%. Tím minimalizujete rušení měření a poskytnete rozumné velikostní stopy. Pomůže vám to lépe izolovat interakci, kterou chcete měřit.

    • Pokud chcete zaznamenat záznam, otevřete příkazový řádek (PowerShell nebo Příkazový řádek) v režimu správce.

    • Zadejte příkaz: wpr -start GeneralProfile -filemode

    • Spusťte scénář interakce ve vaší aplikaci.

    • Zadejte příkaz: wpr -stop Trace.etl

  2. Analyzujte trasování a najděte příležitosti ke zlepšení.

    Analyzujte dobu trvání jednotlivých klíčových interakcí podporovaných vaší aplikací tak, že otevřete trasování, které jste právě zachytili v analyzátoru výkonu Windows (WPA).

    • Pokud chcete trasování otevřít v WPA, zadejte do příkazového řádku: wpa.exe Trace.etl
    • Rozbalte rozevírací seznam Systémová Aktivita a dvojitým kliknutím na "Generic Events" otevřete zobrazení analýzy.
    • Zvolte řadu událostí související s vaší aplikací a rozbalte rozevírací seznam Název zprostředkovatele, dokud nenajdete proces, úkol a událost spojené s klíčovou interakcí, kterou hledáte. Doba trvání události interakce bude uvedena ve sloupci Čas a také v grafu zobrazující dobu trvání, čas zahájení a koncový čas.

    Pokud doba trvání ze sledování nesplňuje cíle třídy interakce (např. 500 ms), identifikujte klíčová vlákna vaší aplikace (pravděpodobně vlákno uživatelského rozhraní) a podívejte se na nejčastější zásobníky využití CPU a čekání. *Mějte na paměti, že při provádění analýzy nemusí být některé problémy specifické pro kód vaší vlastní aplikace.

    Analýza doby trvání události trasování

Dodatečné zdroje