memberInfoCacheCreation MDA
Обновлен: Ноябрь 2007
Управляемый помощник по отладке (MDA) memberInfoCacheCreation активируется при создании кэша MemberInfo. Как правило, это означает, что программа использует ресурсоемкие функциональные возможности отражения.
Признаки
Рабочее множество программы увеличивается вследствие использования программой ресурсоемких функциональных возможностей отражения.
Причина
Операции отражения, связанные с объектами MemberInfo, относятся к ресурсоемким, поскольку требуется чтение метаданных, которые хранятся в "холодных" страницах, и в целом они указывают на то, что программа использует один из сценариев с поздней привязкой.
Решение
Можно определить место использования функций отражения в программе, включив данный MDA, и затем запустив код в отладчике, либо присоединив отладчик к приложению в момент активации MDA. В отладчике появится трассировка стека, демонстрирующая место создания кэша MemberInfo, на основании которого можно определить место использования программой функций отражения.
Решение зависит от целей кода. Данный MDA предупреждает о том, что программа использует сценарий с поздней привязкой. Возможно, потребуется определить, следует ли заменить текущий сценарий на сценарий с ранней привязкой, или оставить сценарий с поздней привязкой.
Влияние на среду выполнения
MDA активируется для каждого создаваемого кэша MemberInfo. Влияние на производительность незначительно.
Результат
MDA выводит сообщение, указывающее на создание кэша MemberInfo. Следует использовать отладчик, чтобы получить трассировку стека, указывающую на место использования программой функций отражения.
Конфигурация
<mdaConfig>
<assistants>
<memberInfoCacheCreation/>
</assistants>
</mdaConfig>
Пример
Данный пример кода активирует MDA memberInfoCacheCreation:
using System;
public class Exe
{
public static void Main()
{
typeof(object).GetMethods();
}
}
См. также
Основные понятия
Диагностика ошибок посредством управляемых помощников по отладке