Share 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 de Aplicativo para localizar e corrigir problemas de desempenho relacionados à interação com o aplicativo em aplicativos XAML. Essa ferramenta ajuda a melhorar o desempenho de aplicativos XAML mostrando uma exibição detalhada do consumo de recursos dos aplicativos. Você pode analisar o tempo gasto pelo seu aplicativo para preparar quadros de interface do usuário (layout e renderização), atender a solicitações de rede e de disco e em cenários como Inicialização de 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 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.

Você pode usar essa ferramenta nas seguintes plataformas:

  • Aplicativos universais do Windows (no Windows 10 e posteriores)
  • Windows 8.1
  • Windows Presentation Foundation (.Net 4.0 e posteriores)
  • Windows 7

Observação

Você pode coletar e analisar os dados de uso da CPU e os dados de consumo de energia junto a dados da ApplicationTimeline. Consulte Executar Ferramentas de Criação de Perfil com ou sem o depurador.

Coletar dados da Linha do Tempo do Aplicativo

Você pode criar o perfil de capacidade de resposta de seu aplicativo em seu computador local, dispositivo conectado, emuladores ou simulador do Visual Studio ou em um dispositivo remoto. Consulte Executar Ferramentas de Criação de Perfil com ou sem o depurador.

Dica

Se possível, execute o aplicativo diretamente no dispositivo. O desempenho do aplicativo observado no simulador ou por uma conexão de área de trabalho remota pode não igual ao desempenho real no dispositivo. Por outro lado, a coleta de dados usando as Ferramentas Remotas do Visual Studio não afeta os dados de desempenho.

Veja a seguir 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.

    Application Timeline Tool Selected

    Observação

    Talvez você veja uma janela Controle de Conta de Usuário solicitando sua permissão para executar VsEtwCollector.exe. Clique em Sim.

  4. Execute o cenário cujo perfil você está interessado em criar 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.

    Timeline profiler report

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

Depois de coletar os dados para a criação de perfil, você pode usar estas etapas para iniciar a 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 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 tempo para cenários, categorias e eventos relacionados ao desempenho de XAML.

{1>Linha do tempo da sessão de diagnóstico<1}

Performance and Diagnostics timeline

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 todas as marcas de usuário inseridas e os eventos de ciclo de vida de ativação do aplicativo.

Gráfico de utilização de thread da interface do usuário

CPU Utilization Graph

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 Taxa de Transferência Visual (FPS)

Visual throughput graph

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 é o ponto em que você passa a maior parte do tempo analisando o relatório. Ela mostra o uso da CPU por seu aplicativo categorizado pelo subsistema de Estrutura da Interface do Usuário ou pelo componente do sistema que consumiu a CPU.

Há suporte para os seguintes eventos:

Nome Descrição
Parsing 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 criação de objeto e a análise de arquivos desnecessárias em cenários sensíveis a 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 quadros de interface do usuário e a capacidade de resposta do aplicativo correspondentemente baixa. O evento Layout determina com precisão o custo de estabelecer 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 na recuperação de dados do disco local ou de recursos de rede acessados por meio da API WinINet (Microsoft Windows Internet).
Código do Aplicativo Tempo gasto executando código do aplicativo (usuário) que não está relacionado à análise ou ao layout.
Xaml Other Tempo gasto executando o código XAML no runtime.

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 os 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 o duração de eventos.
Group events by frame Adiciona ou remove a categoria de Quadro de nível superior que agrupa eventos por quadro.
Filter timeline details list Filtra a lista pelas categorias selecionadas e a duração dos eventos.
Customize timeline details information Permite especificar as anotações para eventos.