Partilhar via


Analisar o consumo de recursos e a atividade do thread da interface do utilizador (XAML)

Use o Application Timeline profiler para localizar e corrigir problemas de desempenho relacionados à interação com o aplicativo em aplicativos XAML. Essa ferramenta ajuda a melhorar o desempenho do aplicativo XAML mostrando uma exibição detalhada do consumo de recursos dos aplicativos. Você pode analisar o tempo gasto pelo seu aplicativo preparando quadros da interface do usuário (layout e renderização), atendendo solicitações de rede e disco e em cenários como Inicialização de Aplicativos, Carregamento de Página e Redimensionamento do Windows.

Application Timeline é uma das ferramentas que você pode começar com o comando Debug>Performance Profiler.

Essa ferramenta substitui a ferramenta de Capacidade de Resposta da Interface do Usuário XAML que fazia parte do conjunto de ferramentas de diagnóstico em versões mais antigas do Visual Studio.

Pode utilizar esta ferramenta nas seguintes plataformas:

  • Aplicações universais do Windows (no Windows 10 e posterior)
  • Windows 8.1
  • Windows Presentation Foundation (.NET 4.0 e superior)
  • Windows 7

Observação

Você pode coletar e analisar dados de uso da CPU e dados de consumo de energia junto com os dados ApplicationTimeline. Consulte Executar ferramentas de criação de perfil em compilações de lançamento ou depuração.

Coletar dados da linha do tempo do aplicativo

Você pode criar o perfil de capacidade de resposta do seu aplicativo em sua máquina local, dispositivo conectado, simulador ou emuladores do Visual Studio ou um dispositivo remoto. Consulte Executar ferramentas de criação de perfil em compilações de lançamento ou depuração.

Dica

Se possível, execute o aplicativo diretamente no dispositivo. O desempenho do aplicativo observado no simulador ou através de uma conexão de área de trabalho remota pode não ser o mesmo que o desempenho real no dispositivo. Por outro lado, coletar os dados usando o Visual Studio Remote Tools não afeta os dados de desempenho.

Aqui estão os passos básicos:

  1. Abra seu aplicativo XAML.

  2. Clique em Debug / Performance Profiler. Você verá uma lista de ferramentas de criação de perfil na janela .diagsession.

  3. Selecione Cronograma da Aplicação e, em seguida, clique em Iniciar na parte inferior da janela.

    Ferramenta de Linha do Tempo do Aplicativo selecionada

    Observação

    Poderá ver uma janela de Controlo de Conta de Utilizador a solicitar a sua permissão para executar VsEtwCollector.exe. Clique Sim.

  4. Executa o cenário no qual estejas interessado em profilares no teu aplicativo para coletar dados de desempenho.

  5. Para interromper a criação de perfil, volte para a janela .diagsession e clique em Parar na parte superior da janela.

    O Visual Studio analisa os dados coletados e exibe os resultados.

    Relatório do perfilador da linha do tempo

Analise dados de perfilagem temporal

Depois de coletar os dados de criação de perfil, você pode usar estas etapas para iniciar sua análise:

  1. Exiba as informações nos gráficos de utilização de threads da interface do utilizador do e de taxa de transferência visual (FPS) do , e, em seguida, utilize as barras de navegação da linha do tempo para selecionar o intervalo de tempo que deseja analisar.

  2. Usando as informações no de utilização de threads da interface do usuário do ou gráficos de de taxa de transferência visual (FPS), examine os detalhes na visualização detalhes da Linha do tempo do para encontrar possíveis causas para qualquer aparente falta de capacidade de resposta.

Relatar cenários, categorias e eventos

A ferramenta Application Timeline exibe dados de tempo para cenários, categorias e eventos relacionados ao desempenho XAML.

Cronograma da sessão de diagnóstico

cronograma de desempenho e diagnóstico

A régua na parte superior da página mostra a linha do tempo para as informações perfiladas. Esta linha temporal aplica-se ao gráfico de utilização de threads da interface de utilizador e ao gráfico de taxa de transferência Visual . Você pode restringir o escopo do relatório arrastando as barras de navegação na linha do tempo para selecionar um segmento da linha do tempo.

A linha do tempo também exibe todas as marcas de usuário inseridas e os eventos do ciclo de vida de ativação do aplicativo.

Gráfico de utilização de threads da interface de utilizador

Gráfico de utilização da CPU

O gráfico de barras de utilização de threads da interface do usuário (%) exibe a quantidade relativa de tempo gasto em uma categoria durante um período de coleta.

Gráfico de taxa de transferência visual (FPS)

Gráfico de taxa de transferência visual

O gráfico de linhas Visual throughput (FPS) mostra os quadros por segundo (FPS) na interface do usuário e no thread de composição do aplicativo.

Detalhes da linha do tempo

A visualização de detalhes é onde você passa a maior parte do tempo analisando o relatório. Ele mostra o uso da CPU pelo seu aplicativo categorizado pelo subsistema UI Framework ou o componente do sistema que consumiu a CPU.

Os seguintes eventos são suportados:

Nome Descrição
Análise Tempo gasto analisando arquivos XAML e criando objetos.

Expandir um nó de análise de em Detalhes da Linha do Tempo exibe a cadeia de dependência de todos os arquivos XAML que foram analisados devido ao evento raiz. Esta dica permite identificar a análise desnecessária de arquivos e a criação de objetos em cenários sensíveis ao desempenho e otimizá-los.
Layout Em aplicações grandes, milhares de elementos podem ser mostrados na tela ao mesmo tempo. Este ecrã pode resultar numa baixa taxa de frames da interface do utilizador e, consequentemente, numa resposta do aplicativo igualmente fraca. O evento Layout determina com precisão o custo de disposição de cada elemento (ou seja, o tempo gasto em Arrange, Measure, ApplyTemplate, ArrangeOverride e MeasureOverride). Ele também constrói as árvores visuais que participaram de um passe de Layout. Você pode usar essa visualização para determinar quais árvores lógicas devem ser podadas ou para avaliar outros mecanismos de adiamento para otimizar sua passagem de layout.
Renderizar Tempo gasto desenhando elementos XAML na tela.
I/0 Tempo gasto na recuperação de dados do disco local ou de recursos de rede que são acessados por meio da API do Microsoft Windows Internet (WinINet).
App Code Tempo gasto na execução de código de aplicativo (usuário) que não está relacionado à análise ou layout.
Xaml Outros Tempo gasto na execução do código em tempo de execução XAML.

Dica

Escolha a ferramenta Uso da CPU junto com a ferramenta Linha do Tempo do Aplicativo quando iniciar a criação de perfil para exibir os métodos do aplicativo executados no thread da interface do usuário. Mover o código do aplicativo de longa execução para um thread em segundo plano pode melhorar a capacidade de resposta da interface do usuário.

Personalizando detalhes da linha do tempo

Use a barra de ferramentas de Detalhes da Linha do Tempo para classificar, filtrar e especificar as anotações das entradas na visualização de Detalhes da Linha do Tempo.

Nome Descrição
Ordenar por Ordene por hora de início ou duração dos eventos.
Agrupar eventos por quadro Adiciona ou remove uma categoria de Quadro de nível superior que agrupa eventos por quadro.
Lista de detalhes da linha cronológica do filtro Filtra a lista por categorias selecionadas e a duração dos eventos.
Personalizar informações de detalhes da linha do tempo Permite especificar as anotações aos eventos.