Bedeutet mehr Methoden in einer Klasse, dass das Objekt zur Laufzeit mehr Speicher verbraucht

8

Angenommen, ich habe eine Klasse ClassBig mit 100 Methoden und eine zweite mit nur 10 Methoden ClassSmall

Wenn ich Objekte zur Laufzeit habe

%Vor%

Nimmt die größere Klasse mehr Speicherplatz ein?

Wenn beide Klassen eine identische Methode enthielten, dauert die Ausführung der größeren Klasse länger?

    
Richard Taylor 29.05.2010, 16:41
quelle

1 Antwort

12

Die speicherinterne Repräsentation einer Instanz einer Klasse ist hauptsächlich nur ihr interner Zustand plus ein Zeiger auf eine speicherinterne Repräsentation der Klasse selbst. Die interne Repräsentation einer Instanzmethode hat ein Argument mehr als Sie in der Klassendefinition angegeben haben - die implizite Referenz this . Auf diese Weise können wir für jede Instanz nur eine Kopie der Instanzmethode und nicht eine neue Kopie speichern.

Also wird eine Klasse mit mehr Methoden mehr Speicher beanspruchen als eine Klasse mit weniger Methoden (der Code muss irgendwo hingehen), aber eine Instanz einer Klasse mit mehr Methoden wird die gleiche Menge an Speicher verwenden, vorausgesetzt, die Klassen haben die gleichen Daten Mitglieder.

Die Ausführungszeit wird nicht von der Anzahl der anderen Methoden in der Klasse beeinflusst.

    
danben 29.05.2010, 16:56
quelle

Tags und Links