22 votos

¿Tiene alguna implicación de rendimiento el añadir [Serializable] a la clase?

Necesito agregar el atributo [Serializable] a una clase que es extremadamente sensible del rendimiento.

¿Este atributo tendrá alguna implicación de rendimiento sobre el funcionamiento de la clase?

21voto

Tamas Czinege Puntos 49277

Sólo se crearán instancias de clases de atributo cuando se es acceder a ellos primero. Si no haces ninguna serialización en esa clase particular, el SerializableAttribute() nunca se llamará constructor, por lo tanto no causa problemas de rendimiento.

Aquí hay un interesante artículo sobre constructores de atributo: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

6voto

Pop Catalin Puntos 25033

Los atributos son un anotaciones de metadatos por lo que no añaden peso a una clase en tiempo de ejecución, a menos que se interpretan por el tiempo de ejecución de una cierta manera que lo hace tratar de forma diferente la clase.

[Serializable] es simplemente un atributo del marcador utilizado como una Convención para indicar que la clase es serializable, no tiene ningún efecto y el tiempo de ejecución no trata las clases de manera especial.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X