2009-09-10 10 views
25

Ich muss das Attribut [Serializable] zu einer Klasse hinzufügen, die extrem leistungsempfindlich ist.Hat das Hinzufügen von [Serializable] zur Klasse irgendwelche Auswirkungen auf die Leistung?

Wird dieses Attribut Auswirkungen auf die Leistung der Klasse haben?

+0

Nur so lange, bis eine Instanz des Attributs erstellt wird. Warum, was hast du bemerkt? –

+0

Ich frage nur vor der Zeit, so dass ich keine andere Lösung erstellen muss, wenn das irgendwelche Perf Probleme hat. – AngryHacker

Antwort

23

Instanzen von Attributklassen werden nur beim ersten Zugriff erstellt. Wenn Sie keine Serialisierung für diese bestimmte Klasse ausführen, wird der SerializableAttribute()-Konstruktor nie aufgerufen, und daher werden keine Leistungsprobleme verursacht.

Hier ist ein interessanter Artikel über Attribut Bauer: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

7

Attribute eine Metadaten Anmerkungen sind, so dass sie, nicht an Gewicht zu einer Klasse zur Laufzeit hinzufügen, wenn sie von der Laufzeit in einer bestimmten Art und Weise interpretiert werden, dass es macht Behandle die Klasse anders.

[Serializable] ist einfach ein Marker-Attribut, das als Konvention verwendet wird, um anzuzeigen, dass die Klasse serialisierbar ist, keine Auswirkung hat und die Laufzeit die Klassen nicht auf besondere Weise behandelt.

Verwandte Themen