共用方式為


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();
    }
}

另請參閱