memberInfoCacheCreation MDA
Uwaga
Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.
Asystent memberInfoCacheCreation
zarządzanego debugowania (MDA) jest aktywowany po utworzeniu pamięci podręcznej MemberInfo . Jest to silne wskazanie programu, który korzysta z funkcji odbicia kosztownych zasobów.
Objawy
Zestaw roboczy programu zwiększa się, ponieważ program korzysta z kosztownego 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 używa określonego typu scenariusza z późnym ograniczeniem.
Rozwiązanie
Możesz określić, gdzie odbicie jest używane w programie, włączając tę usługę MDA, a następnie uruchamiając kod w debugerze lub dołączając go z debugerem po aktywowaniu rozwiązania MDA. W debugerze uzyskasz ślad stosu pokazujący, gdzie MemberInfo została utworzona pamięć podręczna, a następnie możesz określić, gdzie program korzysta z odbicia.
Rozwiązanie zależy od celów kodu. To rozwiązanie MDA powiadamia o tym, że program ma scenariusz z późnym ograniczeniem. Możesz zdecydować, czy możesz zastąpić scenariusz z wczesnym ograniczeniem lub rozważyć wydajność scenariusza z późnym ograniczeniem.
Wpływ na środowisko uruchomieniowe
Ta usługa MDA jest aktywowana dla każdej MemberInfo utworzonej pamięci podręcznej. Wpływ na wydajność jest niewielki.
Wyjście
Usługa MDA generuje komunikat wskazujący, że pamięć podręczna MemberInfo została utworzona. Użyj debugera, aby uzyskać ślad stosu pokazujący, gdzie program używa odbicia.
Konfigurowanie
<mdaConfig>
<assistants>
<memberInfoCacheCreation/>
</assistants>
</mdaConfig>
Przykład
Ten przykładowy kod aktywuje rozwiązanie memberInfoCacheCreation
MDA.
using System;
public class Exe
{
public static void Main()
{
typeof(object).GetMethods();
}
}