Compartilhar via


Analisar o consumo de recursos e a Atividade de Thread de Interface do Usuário (XAML)

Use o criador de perfil Linha do Tempo do Aplicativo 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 de interface do usuário (layout e renderização), atendimento a solicitações de rede e disco, e em cenários como Inicialização do Aplicativo, Carregamento de Página e Redimensionamento do Windows.

Linha do Tempo do Aplicativo é uma das ferramentas que você pode começar com o comando Depurar>Criador de Perfil de Desempenho.

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

Você pode usar essa ferramenta nas seguintes plataformas:

  • Aplicativos universais do Windows (no Windows 10 e posterior)
  • Windows 8.1
  • Windows Presentation Foundation (.NET 4.0 e superior)
  • Windows 7

Nota

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 builds de versão ou depuração.

Coletar dados da linha do tempo do aplicativo

Você pode criar o perfil da capacidade de resposta do seu aplicativo em seu computador local, dispositivo conectado, simulador ou emuladores do Visual Studio ou um dispositivo remoto. Consulte Executar ferramentas de criação de perfil em builds de versão ou depuração.

Dica

Se possível, execute o aplicativo diretamente no dispositivo. O desempenho do aplicativo observado no simulador ou por meio 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 as Ferramentas Remotas do Visual Studio não afeta os dados de desempenho.

Estas são as etapas básicas:

  1. Abra seu aplicativo XAML.

  2. Clique em Depurar/Criador de Perfil de Desempenho. Você deve ver uma lista de ferramentas de criação de perfil na janela .diagsession.

  3. Selecione Linha do tempo do aplicativo e, em seguida, clique em Iniciar na parte inferior da janela.

    Ferramenta de Linha do Tempo do Aplicativo Ferramenta de Linha do Tempo do Aplicativo Selecionada

    Nota

    Você pode ver uma janela de Controle de Conta de Usuário solicitando sua permissão para executar VsEtwCollector.exe. Clique em Sim.

  4. Execute o cenário em que você está interessado em criar perfil em seu 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 criador de perfil da linha do tempo

Analisar dados de criação de perfil de linha do tempo

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 grafos Utilização de thread de interface do usuário e Taxa de transferência visual (FPS) e use as barras de navegação da linha do tempo para selecionar o intervalo de tempo que você deseja analisar.

  2. Usando as informações nos grafos Utilização de thread de interface do usuário ou Taxa de transferência visual (FPS), examine os detalhes na exibição Detalhes da linha do tempo para localizar as possíveis causas de qualquer aparente falta de capacidade de resposta.

Cenários, categorias e eventos de relatório

A ferramenta Linha do Tempo do Aplicativo exibe dados de temporização para cenários, categorias e eventos relacionados ao desempenho de XAML.

Linha do tempo da sessão de diagnóstico

Linha do tempo de desempenho e diagnóstico

A régua na parte superior da página mostra a linha do tempo para informações com o perfil criado. Essa linha do tempo aplica-se ao gráfico Utilização de thread de interface do usuário e 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 as marcas de usuário que você inseriu, além dos eventos do ciclo de vida de ativação do aplicativo.

Grafo de utilização de linha de execução de interface do usuário

Grafo de Utilização da CPU

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

Gráfico de desempenho visual (FPS)

Grafo de taxa de transferência visual

O gráfico de linhas Taxa de transferência visual (FPS) mostra FPS (quadros por segundo) na interface do usuário e no thread de composição para o aplicativo.

Detalhes da linha do tempo

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

Há suporte para os seguintes eventos:

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

Expandir um nó de Análise em Detalhes da linha do tempo exibe a cadeia de dependências de todos os arquivos XAML analisados devido ao evento raiz. Essa 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 aplicativos grandes, milhares de elementos podem ser mostrados na tela ao mesmo tempo. Essa exibição pode resultar em uma baixa taxa de frames da interface e, consequentemente, uma resposta ruim do aplicativo. O evento Layout determina com precisão o custo de definir cada elemento (ou seja, o tempo gasto em Arrange, Measure, ApplyTemplate, ArrangeOverride e MeasureOverride). Ele também cria as árvores visuais que participaram de uma passagem de layout. É possível usar essa visualização para determinar quais árvores lógicas serão removidas ou para avaliar outros mecanismos de adiamento para otimizar sua passagem de layout.
Render Tempo gasto desenhando elementos XAML na tela.
I/0 Tempo gasto recuperando dados do disco local ou de recursos de rede que são acessados por meio da API do Microsoft Windows Internet (WinINet) .
Código do Aplicativo Tempo gasto executando código de aplicativo (usuário) que não está relacionado à análise ou layout.
Xaml Other Tempo gasto executando o código de runtime XAML.

Dica

Escolha a ferramenta Uso da CPU junto com a ferramenta Linha do Tempo do Aplicativo ao começar a criar o perfil para exibir os métodos de aplicativo que são executados no thread da interface do usuário. Mover o código do aplicativo de execução longa em 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 Detalhes da linha do tempo para classificar, filtrar e especificar as anotações das entradas da exibição Detalhes da linha do tempo.

Nome Descrição
Classificar por Classifique por hora de início ou duração dos eventos.
Agrupar eventos por quadro Adiciona ou remove a categoria de Quadro de nível superior que agrupa eventos por quadro.
lista de detalhes do filtro da linha do tempo Filtrar lista de detalhes da linha do tempo Filtra a lista por categorias selecionadas e o comprimento dos eventos.
Personalizar informações de detalhes da linha do tempo Permite que você especifique as anotações para eventos.