2009-02-11 7 views
5

In .NET beeinflusst die Anzahl der Methoden oder die Größe der Methoden (d. H. Die Menge des Codes) innerhalb eines Objekts die Menge an Speicher, die das Objekt verwendet, wenn es instanziiert wird?Beeinflussen Methoden die Größe meiner Objekte?

BEISPIEL: Wird ein Objekt mit 3 Int-Eigenschaften und 1 Methode mehr Speicher aufnehmen als ein Objekt mit 3 Int-Eigenschaften und 20 Methoden?

Wenn "Ja", belegen statische Methoden weniger Speicher?

Bitte beachten Sie: Ich weiß, dass das Aufrufen einer Methode andere Objekte oder Variablen, die Speicher verwenden, instanziieren kann - meine Frage bezieht sich einfach darauf, wie viel Speicher sie nach dem Aufruf des Konstruktors verwenden.

Antwort

9

Nein. Methoden belegen Speicher, aber das ist sehr wenig. Die Methodentabelle sowie der für die Methode generierte Code werden von jeder Instanz des Objekts gemeinsam genutzt.

+0

Also Methoden belegen Speicher, aber es wird zwischen Objekten des gleichen Typs geteilt? (d. h. Der "Methodenspeicher" für 1 Objekt ist der gleiche wie der "Methodenspeicher" für 100 Objekte des gleichen Typs?) – Rick

+0

ja. Das ist richtig –

2

Wird ein Objekt mit 3 int Eigenschaften und 1 Methode mehr Speicher benötigen, als ein Objekt mit 3 int Eigenschaften und 20 Methoden?

Die Antwort ist nein. Methoden sind nicht Teil einer bestimmten Instanz. Sie gehören zum Typ.

Verwandte Themen