Condividi tramite


Migliorare la velocità di risposta dell'app di Windows

Questa guida consente di migliorare la velocità di risposta dell'applicazione Windows ottimizzando la latenza per l'avvio e le interazioni chiave. Le interazioni rapide e reattive (altrimenti note come interazioni a bassa latenza) creano un'esperienza utente migliore. Comprendere le aspettative di interazione, misurare le durate correnti e definire obiettivi per il miglioramento a seconda della classe di interazione può portare a miglioramenti significativi nell'esperienza e nella soddisfazione degli utenti.

Guida dettagliata all'ottimizzazione delle interazioni per il comportamento reattivo

I clienti possono avvertire quando un'applicazione viene lanciata, lo spostamento di menu o il caricamento di pagina/contenuto è lento. Sono arrivati ad aspettarsi un'esperienza rapida e senza problemi e abbiamo condiviso alcuni passaggi e linee guida per comprendere meglio queste aspettative di seguito.

I passaggi di base per favorire l'ottimizzazione della latenza sono:

  1. Definire lo scenario e aggiungere eventi TraceLogging.

    Creare un elenco delle interazioni chiave che un utente eseguirà durante l'uso dell'app, ad esempio l'avvio, l'apertura di un menu, la navigazione in una nuova pagina e il rendering del contenuto e così via. Per ognuna di queste interazioni, aggiungere un evento di avvio e di arresto da usare per la misurazione e l'analisi. Altre informazioni su come aggiungere TraceLogging, un formato per la descrizione automatica di Event Tracing for Windows (ETW).

  2. Impostare gli obiettivi in base alla classe di interazione.

    Gli utenti hanno aspettative diverse per le prestazioni e la velocità di risposta di un'app a seconda del tipo di interazione. Ad esempio, la velocità con cui un'app viene avviata rispetto alla velocità di caricamento di una pagina. Valuta l'intervallo di tempo trascorso accettabile impiegato dagli utenti per completare le interazioni chiave nella tua app. Questo può variare da 200 millisecondi (ms) a 5 secondi (sec). Assegna quindi a ogni attività un'etichetta della classe di interazione con un obiettivo associato. Di seguito sono riportate alcune linee guida di base, insieme ai suggerimenti su come includere un'interfaccia utente per migliorare la percezione della velocità di risposta:

Etichetta della classe di interazione Percezione dell'utente Intervallo di ritardo Esempi Interfaccia utente suggerita
Veloce Ritardo appena percepibile 100-200 millisecondi Aprire la barra dell'app, fare clic con il pulsante destro del mouse sul menu
Interattivo Interazione relativamente veloce 300-500 ms Uscire da un'app, visualizzare i risultati della ricerca memorizzati nella cache
Sospendi Interazione non veloce, ma con percezione di risposta 500 ms - 1 sec Passare a un'altra pagina, riprendere l'app da uno stato di sospensione, visualizzare i risultati della ricerca Web Per mascherare il tempo impiegato per questo scenario, è possibile usare un'animazione di ingresso.
Wait. La velocità dell'animazione non deve essere elevata a causa della quantità di lavoro relativa allo scenario 1 - 3 sec Avviare l'app È possibile usare un cursore in attesa/rotazione per indicare lo stato di avanzamento. Per mascherare il tempo impiegato per questo scenario, è possibile usare sia un'animazione di uscita che un'animazione di ingresso (ad esempio, uscita dalla pagina precedente, ingresso di una nuova pagina).
Attesa prolungata Percezione di assenza di risposta 2 - 5 sec Avvio di app di grandi dimensioni (uso della schermata iniziale estesa), avvio di un flusso video HD Viene visualizzata una "interfaccia utente di caricamento", laddove possibile, includere un'opzione "annulla" per l'utente. L'interfaccia utente di caricamento dovrebbe essere visualizzata all'interno della classe di interazione Fast (veloce). L'interfaccia utente di caricamento non deve visualizzare una percentuale o un tempo rimanente.
Bloccata Attesa prolungata: riservata a scenari inevitabilmente lunghi/complessi 5 - 10 sec Accesso al sistema Viene visualizzata una "interfaccia utente di caricamento", laddove possibile, includere un'opzione "annulla" per l'utente. La finestra di dialogo deve essere visualizzata all'interno della classe di interazione Fast (veloce). La finestra di dialogo deve visualizzare una percentuale o un tempo rimanente se ciò fornirà un contesto utile all'utente.
Esecuzione prolungata Operazioni lunghe: gli utenti probabilmente saranno multitasking (commutazione durante l'operazione) 10 - 30+ sec Installazione di nuove funzionalità o aggiornamenti, download di file di grandi dimensioni L'interfaccia utente deve essere progettata per riflettere la possibilità di multitasking. Verrà visualizzata una finestra di dialogo di stato che include una stima del completamento (percentuale, tempo rimanente e così via). In alternativa, l'interfaccia utente può ridursi al minimo completamente e notificare unicamente all'utente quando lo scenario è terminato usando una notifica di tipo avviso popup.
  1. Per controllare le durate esatte per interazioni specifiche, è possibile acquisire e analizzare una traccia utilizzando Windows Performance Analyzer (WPA).

    • Prima di acquisire la traccia, portare il dispositivo di test in modalità inattiva aprendo Gestione attività e assicurando che l'utilizzo della CPU sia inferiore al 5%. In questo modo si riduce al minimo l'interferenza delle misurazioni e si forniscono tracce di dimensioni ragionevoli. In questo modo sarà possibile isolare meglio l'interazione da misurare.

    • Per acquisire una traccia, aprire una linea di comando (PowerShell o Prompt di comando) in modalità amministratore.

    • Immettere il comando: wpr -start GeneralProfile -filemode

    • Eseguire lo scenario di interazione nell'app.

    • Immettere il comando: wpr -stop Trace.etl

  2. Analizzare la traccia e trovare opportunità di miglioramento.

    Analizzare la durata di ogni interazione chiave supportata dall'app aprendo la traccia appena acquisita in Windows Performance Analyzer (WPA).

    • Per aprire la traccia in WPA, nella riga di comando immettere: wpa.exe Trace.etl
    • Espandere l'elenco a discesa Attività sistema e fare doppio clic su "Eventi generici" per aprire la visualizzazione analisi.
    • Scegliere la serie di eventi correlata all'applicazione ed espandere l'elenco a discesa "Nome provider" fino a trovare il processo, il nome dell'attività e il nome dell'evento associati all'interazione chiave che si sta cercando. La durata dell'evento di interazione verrà elencata nella colonna Ora, nonché nel grafico, che mostra Durata, Ora di inizio e Ora di fine.

    Se la durata della traccia non soddisfa gli obiettivi della classe di interazione (ad esempio 500 ms), identificare i thread chiave per l'app (probabilmente il thread dell'interfaccia utente) ed esaminare gli stack principali in relazione all'utilizzo e alle attese della CPU. *Tenere presente che durante l'analisi alcuni problemi potrebbero non essere specifici per il codice dell'applicazione.

    Analisi della durata dell'evento di traccia

Risorse aggiuntive