2009-09-10 8 views
25

Je dois ajouter l'attribut [Serializable] à une classe extrêmement sensible aux performances.Est-ce que l'ajout de [Serializable] à la classe a des implications sur les performances?

Cet attribut aura-t-il des conséquences sur les performances de la classe?

+0

Seulement le temps qu'il faut pour créer une instance de l'attribut. Pourquoi, qu'avez-vous remarqué? –

+0

Je demande juste à l'avance, de sorte que je n'ai pas besoin de créer une autre solution, si cela avait des problèmes de perf. – AngryHacker

Répondre

23

Les instances de classes d'attributs sont créées uniquement lors de leur premier accès. Si vous ne faites aucune sérialisation sur cette classe particulière, le constructeur SerializableAttribute() ne sera jamais appelé, par conséquent cela ne causera aucun problème de performance.

Voici un article intéressant sur les constructeurs d'attributs: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

7

Les attributs sont une annotations de métadonnées afin qu'ils ne correspondent pas du poids à une classe lors de l'exécution, sauf si elles sont interprétées par le moteur d'exécution d'une certaine manière qui le rend Traitez la classe différemment. [Serializable] est simplement un attribut de marqueur utilisé comme une convention pour indiquer que la classe est sérialisable, elle n'a aucun effet et l'exécution ne traite pas les classes d'une manière spéciale.

Questions connexes