Partilhar via


memberInfoCacheCreation MDA

The memberInfoCacheCreation Assistente de depuração gerenciada (MDA) é ativado quando um MemberInfo cache é criado. Isso é uma forte indicação de um programa que está fazendo uso de recursos de reflexão recurso caro.

Sintomas

De um programa de trabalho do conjunto aumenta porque o programa está usando recurso caro de reflexão.

Causa

Operações de reflexão que envolvem MemberInfo objetos são considerados recursos caros porque eles devem ler os metadados armazenados em páginas cold e em geral eles indicam que o programa está usando algum tipo de cenário de ligação tardia.

Resolução

Você pode determinar onde reflexão está sendo usado no seu programa ativando este MDA e, em seguida, executar o código em um depurador ou anexando com um depurador quando o MDA é ativado.Em um depurador, você receberá um rastreamento de pilha mostrando onde o MemberInfo cache foi criado e a partir daí, você pode determinar onde o programa está usando reflexão.

A resolução é dependente os objetivos do código.Este MDA avisará que o programa tiver um cenário de ligação tardia.Convém para determinar se você substituir um cenário de early bound ou considerar o desempenho do cenário limite atrasado.

Efeito sobre o tempo de execução

Este MDA é ativado para cada MemberInfo cache é criado. O impacto no desempenho é insignificante.

Saída

O MDA gera uma mensagem indicando o MemberInfo cache foi criado. Use um depurador para obter um rastreamento de pilha mostrando onde o programa está usando reflexão.

Configuração

<mdaConfig>
  <assistants>
    <memberInfoCacheCreation/>
  </assistants>
</mdaConfig>

Exemplo

Este código de exemplo ativará o memberInfoCacheCreation MDA.

using System;

public class Exe
{
    public static void Main()
    {
        typeof(object).GetMethods();
    }
}

Consulte também

Conceitos

Diagnosticar erros com assistentes de depuração gerenciadas

Referência

MemberInfo