memberInfoCacheCreation MDA

memberInfoCacheCreation Asystent zarządzanego debugowania (MDA) jest aktywowany po utworzeniu pamięci podręcznejMemberInfo. Jest to silne wskazanie programu, który wykorzystuje kosztowne funkcje odbicia zasobów.

Objawy

Zestaw roboczy programu zwiększa się, ponieważ program korzysta z kosztownych odbicia zasobów.

Przyczyna

Operacje odbicia obejmujące MemberInfo obiekty są uważane za kosztowne za zasoby, ponieważ muszą odczytywać metadane przechowywane na zimnych stronach i ogólnie wskazują, że program korzysta z pewnego typu scenariusza powiązanego z opóźnieniem.

Rozwiązanie

Możesz określić, gdzie odbicie jest używane w programie, włączając to rozwiązanie MDA, a następnie uruchamiając kod w debugerze lub dołączając go z debugerem po aktywowaniu mdA. W debugerze uzyskasz ślad stosu pokazujący miejsce MemberInfo utworzenia pamięci podręcznej, a następnie możesz określić, gdzie program korzysta z odbicia.

Rozwiązanie zależy od celów kodu. To rozwiązanie MDA ostrzega o tym, że program ma scenariusz związany z późnym opóźnieniem. Możesz określić, czy możesz zastąpić scenariusz wczesnego ograniczenia lub rozważyć wydajność scenariusza z późnym ograniczeniem.

Wpływ na środowisko uruchomieniowe

To rozwiązanie MDA jest aktywowane dla każdej MemberInfo tworzonej pamięci podręcznej. Wpływ na wydajność jest nieznaczny.

Dane wyjściowe

Usługa MDA generuje komunikat wskazujący, że MemberInfo pamięć podręczna została utworzona. Użyj debugera, aby uzyskać ślad stosu pokazujący, gdzie program korzysta z odbicia.

Konfigurowanie

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

Przykład

Ten przykładowy kod aktywuje usługę memberInfoCacheCreation MDA.

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

Zobacz też