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