Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode ver quanta memória seu aplicativo usa e quais caminhos de código alocam mais memória usando a ferramenta de alocação de objetos .NET.
Depois de executar a ferramenta, você pode ver os caminhos de execução da função onde os objetos estão sendo alocados. Em seguida, podes rastrear até à raiz da árvore de chamadas que está a ocupar mais memória.
Para obter um tutorial que mostra como melhorar o desempenho usando a ferramenta de alocação de objetos .NET, consulte Estudo de caso: Guia para iniciantes para otimizar o código.
Configuração
No projeto do Visual Studio, defina a configuração da solução como Release e selecione o destino de implantação.
O destino de implantação normalmente corresponde ao nome do projeto, indicando uma implantação local.
Selecione Alt+F2 para abrir o Performance Profiler no Visual Studio.
Marque a caixa de seleção de Controle de Alocação de Objetos .NET.
Para executar a ferramenta, selecione o botão Iniciar.
Se você habilitar a opção Iniciar com a coleta pausada antes de iniciar o criador de perfil, os dados não serão coletados até que você selecione o botão Gravar na exibição da sessão de diagnóstico.
Depois que a ferramenta começar a ser executada, percorra o cenário que você deseja criar um perfil em seu aplicativo. Em seguida, selecione Parar coleta ou feche seu aplicativo para ver seus dados.
Selecione o separador de Alocação . Dados de alocação de memória semelhantes aos seguintes aparecem.
Agora você pode analisar a alocação de memória dos objetos.
Durante a coleta, a ferramenta de rastreamento pode tornar o aplicativo com perfil mais lento. Se o desempenho da ferramenta de rastreamento ou do aplicativo estiver lento e se você não precisar rastrear todos os objetos, poderá ajustar a taxa de amostragem. Para fazer isso, selecione o símbolo de engrenagem ao lado da ferramenta de monitorização na página de resumo do perfilador.
Ajuste a taxa de amostragem à taxa desejada. Essa alteração ajuda a acelerar o desempenho do seu aplicativo durante a coleta e a análise.
Para obter mais informações sobre como tornar a ferramenta mais eficiente, consulte Otimizando as configurações do Profiler.
Compreender os seus dados
Na vista gráfica seguinte, o gráfico superior mostra o número de objetos dinâmicos na sua aplicação. O gráfico na parte inferior delta do objeto mostra a alteração percentual dos objetos da aplicação. Barras vermelhas indicam quando a coleta de lixo ocorreu.
pt-PT: 
Você pode filtrar os dados tabulares para exibir a atividade apenas para um intervalo de tempo especificado selecionando um intervalo de tempo. Quando você faz isso, as informações que aparecem nas guias têm como escopo o intervalo de tempo filtrado.
Você também pode aumentar ou diminuir o zoom do gráfico.
Perspetivas
Se algum insight aparecer na visualização Insights , use o link fornecido para obter mais informações sobre o problema identificado.
Obtenha assistência de IA
Se você tiver o Copilot, poderá obter assistência de IA enquanto analisa os principais insights. O Copilot fornece informações e insights relacionados a um conjunto de insights de desempenho específicos. Com o Copilot, você também pode fazer perguntas sobre objetos que usam mais memória, o que pode ajudá-lo a produzir código mais eficiente ou econômico.
O botão Ask CopilotCaptura de ecrã do botão Ask Copilot. aparece mesmo que nenhum insight de desempenho específico seja identificado. Selecione Perguntar ao Copiloto para aprender com o Copilot e começar a fazer perguntas.
Repartição
A visualização de Alocação mostra o local dos objetos que estão a alocar memória e quanta memória esses objetos estão a alocar.
As seguintes informações aparecem na exibição Alocação:
A coluna Tipo é uma lista de classes e estruturas que consomem memória. Faça duplo clique num tipo para exibir o seu backtrace como uma árvore de chamadas invertida. Na vista de alocação , pode ver itens dentro da categoria selecionada que ocupam memória.
A coluna Alocações mostra o número de objetos que ocupam memória dentro de um determinado tipo ou função de alocação. Esta coluna aparece apenas nas visualizações Allocation, Call Treee Functions.
As colunas Bytes e Tamanho Médio (Bytes) não aparecem por defeito. Para mostrá-los, clique com o botão direito do mouse na coluna Tipo ou Alocações e, em seguida, selecione as opções Bytes e Tamanho Médio (Bytes) para adicioná-los ao gráfico.
As duas colunas são semelhantes a Total (Alocações) e Self (Alocações), exceto que mostram a quantidade de memória utilizada em vez do número de objetos que utilizam memória. Essas colunas aparecem somente na vista de alocação .
A coluna Nome do módulo mostra o módulo que contém a função ou processo que está a ser chamado.
Todas essas colunas são classificáveis. Para as colunas Tipo e Nome do Módulo, você pode classificar os itens alfabeticamente em ordem crescente ou decrescente. Para alocações , Bytes e Tamanho Médio (Bytes), podes classificar itens por valor numérico crescente ou decrescente.
Símbolos
Os seguintes símbolos aparecem nas abas Allocation, Call Treee Functions:
- Um tipo de valor como o inteiro
- Uma coleção de tipo de valor como uma matriz de inteiros
- Um tipo de referência como uma cadeia de caracteres
- Uma coleção de tipo de referência como matriz de cadeias de caracteres
Árvore de chamadas
A visualização Árvore de Chamadas mostra os caminhos de execução das funções que contêm objetos que estão a alocar muita memória.
As seguintes informações aparecem na Árvore de chamadas vista:
- A coluna Nome da Função mostra o processo ou o nome da função que contém objetos que alocam memória. A exibição é baseada no nível do nó que você está inspecionando.
- As colunas Total (Alocações) e Tamanho Total (Bytes) mostram o número de objetos alocados e a quantidade de memória usada por uma função e todas as outras funções que ela chama. A coluna Tamanho Total (Bytes) está oculta por padrão.
- As colunas Self (Allocations) e Self-Size (Bytes) mostram o número de objetos alocados e a quantidade de memória usada por uma única função selecionada ou tipo de alocação.
- A coluna Tamanho Médio (Bytes) mostra as mesmas informações que na visualização Alocações. Esta coluna está oculta por padrão.
- A coluna Nome do módulo mostra o módulo que contém a função ou processo que está a ser chamado.
As opções adicionais que aparecem na visualização da Árvore de Chamadas do incluem:
- O botão Expandir Hot Path destaca um caminho de execução de função que contém muitos objetos que estão alocando memória. O algoritmo começa num nó que você seleciona e destaca o caminho com o maior número de alocações, orientando-o na sua investigação.
- O botão Mostrar Caminho Quente mostra ou oculta os símbolos de chama que indicam quais nós fazem parte do caminho quente.
Funções
A visualização Funções mostra processos, módulos e funções que estão alocando memória.
As informações que aparecem na exibição Funções incluem:
A coluna Nome mostra os processos como os nós de nível mais alto. Abaixo dos processos estão os módulos, e abaixo dos módulos estão as funções.
As seguintes colunas, que mostram as mesmas informações que nas vistas de Alocação e Árvore de Chamadas:
- Total (Alocações)
- Self (Alocações)
- Tamanho total (bytes)
- Tamanho próprio (Bytes)
- Tamanho médio (bytes)
Coleção
A visualização da coleção mostra quantos objetos foram recolhidos ou retidos durante a recolha de lixo.
As informações a seguir aparecem na visualização da Coleção .
- A coluna GC mostra o ID dessa coleta de lixo no ciclo de vida do executável.
- A coluna Geração mostra a Geração da coleta de lixo.
- A coluna Tipo GC mostra o tipo desta recolha de lixo.
- A coluna GC Reason mostra o motivo deste evento de recolha de lixo.
- A coluna Duração da Pausa mostra o tempo que a execução foi bloqueada porque o recolhedor de lixo necessita de uso exclusivo do heap. Para uma coleta de lixo em segundo plano, esse valor é pequeno.
- A coluna LOH Size mostra o tamanho da pilha de objetos grandes depois que o coletor de lixo foi executado.
- A coluna Tamanho do POH mostra o tamanho da pilha de objeto fixo depois que o coletor de lixo foi executado.
- A coluna Surv Finalizável (MB) mostra o número de MB de objetos que têm finalizadores (destruidores) que sobreviveram à coleta de lixo.
- A coluna Objetos Afixados mostra o número de objetos fixados que essa coleta de lixo apresentou.
- A coluna Recolhidos mostra o número de objetos que o coletor de lixo recolheu.
- A coluna Sobreviveu mostra o número de objetos que sobreviveram depois que o coletor de lixo foi executado.
Quando seleciona uma linha, esta vista também mostra gráficos de setores que visualizam objetos coletados e sobreviventes por tipo.
Ferramentas de filtragem
As visualizações Allocations, Call Treee Functions contêm as opções Mostrar Apenas Meu Código e Mostrar Código Nativo e uma caixa de filtro.
- Show Just My Code recolhe sistemas, frameworks e outros códigos que não são do utilizador em quadros de [Código Externo], de modo a concentrar-se apenas no seu código. Para obter mais informações, consulte Depurar código de usuário com Just My Code.
- Mostrar código nativo mostra o código nativo dentro do destino de análise e pode incluir código de não-usuário.
- Com a caixa de filtro, você pode filtrar a coluna Nome ou Nome da função com base no valor fornecido. Insira um valor de cadeia de caracteres na caixa. Em seguida, a tabela mostra apenas os tipos que contêm essa cadeia de caracteres.