Означает ли наличие большего количества методов в классе, что объект использует больше памяти во время выполнения - PullRequest
9 голосов
/ 29 мая 2010

Скажем, у меня есть один класс ClassBig с 100 методами внутри, а второй только с 10 методами ClassSmall

Когда у меня есть объекты во время выполнения

<code>
ClassBig big = new ClassBig();
ClassSmall small = new ClassSmall();

Большой класс занимает больше места в памяти?

Если оба класса содержали идентичный метод, требуется ли более крупному классу его выполнение?

1 Ответ

14 голосов
/ 29 мая 2010

Представление экземпляра класса в памяти - это, в основном, только его внутреннее состояние плюс указатель на представление самого класса в памяти. Внутреннее представление метода экземпляра имеет еще один аргумент, чем вы указали в определении класса - неявная ссылка this. Таким образом, мы можем хранить только одну копию метода экземпляра, а не новую копию для каждого экземпляра.

Таким образом, класс с большим количеством методов будет занимать больше памяти, чем класс с меньшим количеством методов (код должен куда-то идти), но экземпляр класса с большим количеством методов будет использовать тот же объем памяти, предполагая, что классы одни и те же члены данных.

Время выполнения не зависит от количества других методов в классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...