2009-02-11 15 views
5

En .NET, ¿la cantidad de métodos o el tamaño de los métodos (es decir, cantidad de código) dentro de un objeto afectan la cantidad de memoria que el objeto usa cuando se instancia?¿Los métodos afectan el tamaño de mis objetos?

EJEMPLO: ¿Un objeto con 3 propiedades int y 1 método ocupará más memoria que un objeto con 3 propiedades int y 20 métodos?

Si la respuesta es "sí", ¿los métodos estáticos ocupan menos memoria?

Tenga en cuenta: me doy cuenta de que llamar a un método podría instanciar otros objetos o variables que usarán memoria: mi pregunta simplemente se relaciona con la cantidad de memoria que usan después de llamar al constructor.

Respuesta

9

No. Los métodos toman la memoria, pero eso es muy poco. La tabla de métodos así como el código generado para el método es compartido por cada instancia del objeto.

+0

Entonces, ¿los métodos ocupan memoria, pero se comparte entre objetos del mismo tipo? (es decir, el uso de "memoria de método" para 1 objeto es lo mismo que el uso de "memoria de método" de 100 objetos del mismo tipo?) – Rick

+0

sí. Eso es correcto –

2

Será un objeto con 3 propiedades int y 1 método tomar hasta más memoria que un objeto con 3 propiedades int y 20 métodos?

La respuesta es no. Los métodos no son parte de ninguna instancia en particular. Ellos pertenecen al tipo.

Cuestiones relacionadas