2010-03-17 2 views
2

Если у меня есть класс, называемый myclass, имеет ли статические методы в классе влиять на его размер в памяти?Статические методы влияют на размер php-объекта?

class myclass{ 
public $instancevar; 
public static function method1(){} 
public static function method2(){} 
} 

Будет ли добавлено больше статических методов сделать экземпляры myclass более крупными?

Я знаю, что статические методы распределяются между экземплярами класса, но будут ли добавление более или менее статических методов влиять на размер объекта в памяти вообще? Точно так же, если более статические методы влияют на время выполнения, если я передаю экземпляр методу в качестве аргумента?

ответ

1

Я бы даже сказал, что также методы-члены не увеличивают объем памяти объекта. Если я сериализую объект, то только сериализуется только информация, из которой класс является экземпляром и значения его свойств. Этого достаточно, чтобы определить поведение объектов.

Вы можете вычислить размер объекта described in this question.

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


Подводя итог: Вы не получите ничего, если вы используете статические методы, которые работают на объекте, чем при использовании методов объекта непосредственно.

0

Статические методы не должен увеличить объем памяти вашего объекта.

Вопрос: вы заметили бы, если статические методы увеличили объем памяти вашего объекта?

+0

Я бы не стал, но кто-то другой ошибся в моем использовании «огромных» объектов, которые на самом деле представляют собой только полдюжины переменных-членов и несколько статических функций большого числа. Я просто хотел проверить свое понимание :) – andyjdavis