2010-03-17 30 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 2010-03-18 01:43:46

相关问题