Partilhar via


Melhorar a capacidade de resposta da sua aplicação Windows

Este guia irá ajudá-lo a melhorar a capacidade de resposta do seu aplicativo do Windows, otimizando a latência para inicialização e interações importantes. Interações rápidas e responsivas (também conhecidas como interações de baixa latência) criam uma melhor experiência do usuário. Compreender as expectativas de interação, medir as durações atuais e definir metas de melhoria, dependendo da classe de interação, pode levar a melhorias significativas na experiência e satisfação dos usuários.

Guia passo a passo para otimizar interações para um comportamento responsivo

Os clientes podem sentir quando a inicialização de um aplicativo, a navegação no menu ou o carregamento de página/conteúdo estão lentos. Eles esperam uma experiência rápida e perfeita e nós compartilhamos algumas etapas e orientações para entender melhor essas expectativas abaixo.

As etapas básicas para impulsionar a otimização da latência são:

  1. Defina o cenário e adicione eventos TraceLogging.

    Faça uma lista das principais interações pelas quais um usuário passará ao usar seu aplicativo, como iniciar, abrir um menu, navegar para uma nova página e renderizar conteúdo, etc. Para cada uma dessas interações, adicione um evento start e um evento stop a serem usados para medição e análise. Saiba mais sobre como adicionar TraceLogging, um formato auto descritivo para o Rastreamento de Eventos no Windows (ETW).

  2. Estabeleça metas com base na classe de interação.

    Os usuários têm expectativas diferentes para o desempenho e a capacidade de resposta de um aplicativo, dependendo do tipo de interação. Por exemplo, a rapidez com que um aplicativo é iniciado versus a rapidez com que uma página é carregada. Pense no intervalo aceitável de tempo decorrido que os usuários levam para concluir as principais interações em seu aplicativo. Isso pode variar de 200 milissegundos (ms) a 5 segundos (seg.). Em seguida, atribua a cada tarefa um rótulo de classe de interação com uma meta associada. Abaixo estão algumas diretrizes básicas, juntamente com sugestões de como você pode incluir uma interface do usuário (UI) para melhorar a perceção da capacidade de resposta:

Rótulo da classe de interação Perceção do utilizador Intervalo de atraso Exemplos Interface do usuário sugerida
Rápido Atraso minimamente percetível 100 - 200 milissegundos Abra a barra de aplicativos, clique com o botão direito do mouse no menu
Interativo Rápido, mas não rápido 300 - 500 ms Sair de um aplicativo, exibir resultados de pesquisa em cache
Pausa Não é rápido, mas é sensível ao toque 500 ms - 1 seg Navegue para uma página diferente, retome o aplicativo de um estado suspenso, exiba os resultados da pesquisa na Web Uma animação de entrada (por exemplo, a exibição de novo conteúdo) pode ser usada para mascarar o tempo necessário para esta situação.
Aguarde Não é rápido devido à quantidade de trabalho necessária para o cenário 1 - 3 seg Iniciar a aplicação Um cursor girando/aguardando pode ser usado para anotar o progresso. Animações de saída e de entrada (por exemplo, deslocar a página antiga para fora, deslocar a nova página para dentro) podem ser usadas para ocultar o tempo necessário para este cenário.
Longa espera Não se sente mais responsivo 2 - 5 seg Lançamentos de grandes aplicações (use ecrã inicial expandido), iniciar uma transmissão de vídeo HD Uma "interface de carregamento" é exibida – sempre que possível, inclua uma opção "cancelar" para o usuário. A interface do usuário de carregamento deve aparecer dentro da classe de interação Fast. A interface do usuário de carregamento não precisa exibir uma porcentagem ou tempo restante.
Cativo Uma longa espera – reservada para cenários inevitavelmente longos/complexos 5 - 10 seg Login do sistema Uma "janela de carregamento" ou caixa de diálogo é exibida – sempre que possível, inclua a opção "cancelar" para o utilizador. A caixa de diálogo deve aparecer dentro da classe Fast interaction. A caixa de diálogo deve exibir uma porcentagem ou tempo restante se isso fornecer contexto útil para o usuário.
Longo prazo Operações longas – os utilizadores provavelmente farão várias tarefas (desviarão a atenção durante a operação) 10 - 30+ seg Instalação de novos recursos ou atualizações, downloads de arquivos grandes A interface do usuário deve ser projetada para refletir a possibilidade de multitarefa. Uma caixa de diálogo de progresso deve ser exibida, incluindo uma estimativa de conclusão (porcentagem, tempo restante, etc.). Como alternativa, a interface do usuário pode ser completamente minimizada e apenas notificar o usuário quando o cenário for concluído, usando uma notificação do tipo 'toast'.
  1. Para verificar as durações exatas de interações específicas, pode-se capturar e analisar um traço usando Windows Performance Analyzer (WPA).

    • Antes de capturar o seu rastreamento, coloque o seu dispositivo de teste em espera, abrindo o Gestor de Tarefas e certificando-se de que a utilização da CPU seja inferior a 5%. Isso minimizará a interferência na medição e fornecerá traços de tamanho razoáveis. Isto irá ajudá-lo a isolar melhor a interação que pretende medir.

    • Para capturar um rastreamento, abra uma linha de comando (PowerShell ou Prompt de Comando) no modo de administrador.

    • Digite o comando: wpr -start GeneralProfile -filemode

    • Execute o cenário de interação em seu aplicativo.

    • Digite o comando: wpr -stop Trace.etl

  2. Analise o rastreamento e encontre oportunidades de melhoria.

    Analise a duração de cada interação principal suportada pela sua aplicação ao abrir o rastreio capturado em Windows Performance Analyzer (WPA).

    • Para abrir o rastreamento no WPA, em sua linha de comando, digite: wpa.exe Trace.etl
    • Expanda a lista suspensa de Atividade do Sistema e clique duas vezes em "Eventos genéricos" para abrir a visualização de análise.
    • Escolha a série de eventos relacionada à sua aplicação e expanda a lista suspensa "Nome do Provedor" até conseguir encontrar o nome do processo, da tarefa e do evento associado à interação principal que está a procurar. A duração do evento de interação será listada na coluna de Tempo e no gráfico, onde serão mostrados a Duração , a Hora de Início e a Hora de Término .

    Se a duração do seu rastreamento não atender às metas da classe de interação (por exemplo, 500ms), identifique os threads principais para seu aplicativo (provavelmente o thread da interface do usuário) e examine as pilhas superiores para uso da CPU e espera. *Lembre-se de que, ao realizar a análise, alguns problemas podem não ser específicos do código do seu próprio aplicativo.

    Análise da duração do evento de rastreio

Recursos adicionais