Narzut wydajności związany z używaniem atrybutów w .NET
1 .. Czy jest jakiś narzut wydajności spowodowany użyciem atrybutów? Pomyśl o klasie takiej jak:
public class MyClass
{
int Count {get;set;}
}
gdzie ma 10 attibutes (atrybuty będące klasami, gdzie same klasy atrybutów są znacznie większe niż sama MyClass jak:
public class FirstAttribute : Attribute
{
int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
2 .. Czy 10 z tych atrybutów będzie obciążeniem pamięci za każdym razemMyClass
jest tworzony? (FirstAttribute
jest 10 razy większy niżMyClass
które będą ozdobione 10 z nich, dzięki czemu sam obiekt będzie tak mały w porównaniu z całkowitym rozmiarem zdobionych na nim atrybutów.) Czy to jest troska?
3. Czy ten scenariusz byłby inny dla struktur (Strukty będące typami wartości i atrybutami będącymi typami odniesienia)?
4 .. Gdzie są przechowywane atrybuty w pamięci w odniesieniu do obiektu, do którego są przyłączone? Jak się łączą?
5 .. Czy atrybuty są inicjowane jak najszybciejMyClass
jest zainicjowany lub gdy używasz odbicia, aby je odzyskać?