Partilhar via


Noções básicas sobre a alocação de memória e os valores de dados de tempo de vida do objeto nas ferramentas de criação de perfil

The .Alocação de memória NET o método de criação de perfil Visual Studio Ferramentas de criação de perfil interrompe o processador do computador em cada alocação de um.NET Framework objeto aplicativo perfilado. Quando os dados de tempo de vida do objeto também são coletados, o criador de perfil interrompe o processador após cada.Coleta de lixo do NET Framework. O perfilador coleta informações sobre o tamanho e o número de objetos que foram criados em uma alocação ou destruída em uma coleta de lixo e informações adicionais sobre a função pilha de chamadas quando o evento ocorreu. A pilha de chamadas é uma estrutura dinâmica que armazena informações sobre as funções que estão em execução no processador. Os dados são agregados para cada função perfilada e para cada tipo de objeto.

Dados de alocação

Quando ocorre um evento .memory, o total de contagens e tamanhos dos objetos de memória alocado ou destruído, forem incrementados.

Quando ocorre um evento de alocação de .memory, o profiler incrementa as contagens de amostra para cada função na pilha de chamadas. Quando os dados são coletados, apenas uma função na pilha de chamadas está sendo executado o código em seu corpo da função. As outras funções na pilha são pais na hierarquia de chamadas de função que estão aguardando para as funções de chamada de retorno.

  • Para o evento de alocação, os incrementos profiler a exclusivo a contagem da função que está sendo executado suas instruções de exemplo. Como uma amostra exclusiva também é parte do total (inclusive) também é incrementado a exemplos da função, a contagem de exemplo inclusive da função ativa no momento.

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

Dados de tempo de vida

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

O coletor de lixo recupera a memória desalocando uma geração inteira de objetos. Para objetos que o aplicativo perfilado criado, o modo de exibição de tempo de vida do objeto exibe o número e tamanho dos objetos e a geração de quando são recuperados.