Compartilhar via


Analisar o caminho crítico para a raiz na ferramenta Uso de Memória

Ao criar a criação de perfil do código .NET na ferramenta de criação de perfil Uso de Memória no Visual Studio, o caminho crítico para a raiz pode ajudar você a identificar objetos retidos no heap que estão causando problemas de uso de memória. No contexto de uso da memória, o caminho crítico é uma cadeia de referência identificada pela ferramenta de análise que aponta para um objeto raiz que é uma origem potencial de problemas de memória.

Ao calcular o tamanho inclusivo de um objeto (a quantidade total de memória retida no heap ao manter o objeto ativo), é frequentemente útil reduzir o grafo de heap fortemente conectado a uma árvore. Ao contrário de um grafo, um nó em uma árvore tem arbitrariamente muitos filhos, mas apenas um pai solteiro. Em vez de considerar todos os caminhos possíveis para a raiz de um objeto, escolher o caminho mais provável para raiz usando várias heurísticas normalmente é suficiente para encontrar a cadeia de referência que, se removida, tornará o objeto qualificado para coleta de lixo. Algumas dessas heurísticas incluem priorizar o caminho mais curto para a raiz, determinados tipos de raízes e caminhos de código do utilizador. Por vários motivos, essa estratégia nem sempre encontra a cadeia de retenção mais interessante ou de vida mais longa, mas geralmente fornece um ponto de partida útil em uma investigação de uso de memória.

Na árvore Caminhos para Raiz da ferramenta Uso de Memória, o caminho com o ícone de chama (Captura de tela que mostra o ícone Caminho Crítico.) é chamado de caminho crítico para raiz.

Exemplo

Use a opção Mostrar apenas caminhos críticos para filtrar a exibição no painel Caminhos para Raiz.

Neste exemplo, existe um controle WPF (AttachToProcess.Dialog) que está sendo vazado através de uma associação que será enraizada por um AutomationPeer. No modo de exibição filtrado, o caminho de retenção é óbvio; somente o caminho direto para a raiz está visível.

Captura de tela do grafo de referência Caminhos para Raiz. A opção Mostrar apenas caminhos críticos está marcada, destacando uma cadeia linear de referências.

Com a opção desabilitada, fica claro que existem centenas de associações, e a maioria dos caminhos de expansão leva a becos sem saída nesse ciclo. Sem o indicador visual, é entediante analisar milhares de possíveis caminhos de retenção para encontrar uma possível razão para o vazamento. Captura de tela do mesmo grafo de referência de Caminhos para Raiz, mas Mostrar apenas caminhos críticos só é desmarcado com muitos possíveis becos sem saída visíveis.

Consulte também

Para obter mais informações sobre a ferramenta uso de memória do Visual Studio, consulte