2009-09-10 4 views
25

Necesito agregar el atributo [Serializable] a una clase que es extremadamente sensible al rendimiento.¿Agregar [Serializable] a la clase tiene alguna implicancia en el rendimiento?

¿Este atributo tendrá alguna repercusión en el funcionamiento de la clase?

+0

Solo el tiempo necesario para crear una instancia del atributo. ¿Por qué? ¿Qué has notado? –

+0

Solo pregunto antes de tiempo, para no tener que crear otra solución, si esto tiene algún problema de rendimiento. – AngryHacker

Respuesta

23

Las instancias de las clases de atributos solo se crean cuando se acceden por primera vez. Si no realiza ninguna serialización en esa clase en particular, nunca se llamará al constructor SerializableAttribute(), por lo tanto, no causará ningún problema de rendimiento.

He aquí un interesante artículo sobre los constructores de atributos: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

7

Los atributos son unas anotaciones de metadatos para que no se añaden peso a una clase en tiempo de ejecución, a menos que sean interpretados por el tiempo de ejecución de una determinada manera que lo hace tratar la clase de manera diferente

[Serializable] es simplemente un atributo de 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 ninguna manera especial.

Cuestiones relacionadas