memberInfoCacheCreation MDA
注意
本文專屬於 .NET Framework。 它不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。
建立 MemberInfo 快取時,會啟用 memberInfoCacheCreation
Managed 偵錯助理 (MDA)。 這明顯指出利用耗用大量資源之反映功能的程式。
徵兆
程式的工作集會增加,因為程式正在使用耗用大量資源的反映。
原因
包含 MemberInfo 物件的反映作業會耗用大量資源,因為它們必須讀取冷頁面中所儲存的中繼資料,而且一般會指出程式正在使用某種類型的晚期繫結案例。
解決方法
您可以啟用此 MDA,然後在偵錯工具中執行程式碼,或在啟用 MDA 時使用偵錯工具附加,來判斷將在程式中使用反映的位置。 透過偵錯工具,您將取得堆疊追蹤以顯示 MemberInfo 快取建立位置,並且您可以在該處判斷程式將使用反映的位置。
解決方式取決於程式碼目標。 此 MDA 會提醒您程式具有晚期繫結案例。 您可能想要決定是否可以替代早期繫結案例,或考慮晚期繫結案例的效能。
對執行階段的影響
會針對每個建立的 MemberInfo 快取啟用此 MDA。 效能影響微不足道。
輸出
MDA 會輸出訊息,指出已建立 MemberInfo 快取。 使用偵錯工具取得堆疊追蹤,以顯示將在程式中使用反映的位置。
組態
<mdaConfig>
<assistants>
<memberInfoCacheCreation/>
</assistants>
</mdaConfig>
範例
此範例程式碼將會啟用 memberInfoCacheCreation
MDA。
using System;
public class Exe
{
public static void Main()
{
typeof(object).GetMethods();
}
}