Partilhar via


Entendendo a alocação de memória e os valores de dados de vida útil de objetos nas Ferramentas de Criação de Perfil

A alocação de memória .NET que analisa o método de Visual Studio ferramentas para traçar perfil coleta informações sobre o tamanho e o número de objetos que foram criados em uma alocação ou destruídos em uma coleta de lixo e uma informações adicionais sobre a pilha de chamada de função quando o evento ocorre.Uma pilha de chamadas é uma estrutura dinâmica que armazena informações sobre as funções que estão executando no processador.

Requisitos

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional

O profiler de memória interrompe o processador do computador em cada alocação de um objeto do Framework.NET em um aplicativo analisado.Quando os dados da vida útil de objeto são coletados também, o profiler interrompe o processador após cada coleta de lixo .NET Framework.Os dados são agregados para cada função analisada e para cada tipo de objeto.

Dados de alocação

Quando ocorre um evento de .memory, as pontuações total e os tamanhos dos objetos atribuídos ou destruídos de memória são incrementadas.

Quando um evento de alocação de .memory ocorre, o profiler incrementa os resultados de exemplo para cada função na pilha de chamadas.Quando os dados são coletados, somente uma função na pilha de chamadas está atualmente executando o código no corpo da função.Outras funções na pilha são pais na hierarquia de chamadas de função que estão aguardando as funções que eles chamaram para retornar.

  • Para o evento de alocação, o profiler incrementa a contagem exclusiva de exemplo de função que está executando atualmente suas declarações.Como um exemplo exclusivo também é parte dos exemplos ()inclusivostotal de função, a contagem inclusiva de exemplo de função ativa no momento. também é incrementada

  • O profiler incrementa a contagem inclusiva de exemplo de todas as funções restantes na pilha de chamadas.

Dados do tempo de vida

O coletor de lixo .NET Framework gerencia a alocação e de memória para seu aplicativo.Para otimizar o desempenho do coletor de lixo, o heap gerenciado é dividido em três gerações: 0, 1, e 2.O coletor de lixo de tempo de execução armazena novos objetos na geração 0.Os objetos que sobrevivem às coletas são promovidos e armazenados em gerações 1 e 2.

O coletor de lixo recupera memória desalocando uma geração inteira de objetos.Para objetos que o aplicativo analisado criado, o tempo de vida do objeto exibe o número e o tamanho de objetos e de geração quando é recuperado.