【问题标题】:Do static methods affect the size of a php object?静态方法会影响 php 对象的大小吗?
【发布时间】:2010-03-17 09:25:48
【问题描述】:

如果我有一个名为 myclass 的类,类中的静态方法会影响其在内存中的大小吗?

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

添加更多静态方法是否会使 myclass 的实例更大?

我知道静态方法在类的实例之间共享,但是添加更多或更大的静态方法会影响内存中对象的大小吗?同样,如果我将实例作为参数传递给方法,更多的静态方法会影响执行时间吗?

【问题讨论】:

    标签: php static


    【解决方案1】:

    我什至会说成员方法也不会增加对象的内存占用。如果我序列化一个对象,那么只有它是一个实例来自哪个类以及它的属性具有哪些值的信息被序列化。这足以确定对象的行为。

    您可以计算对象described in this question的大小。

    您会看到添加或删除静态或非静态方法不会改变对象的大小。


    总结一下:如果你使用对对象进行操作的静态方法,与直接使用对象方法相比,你一无所获。

    【讨论】:

      【解决方案2】:

      静态方法不应该增加对象的内存占用。

      问题是 - 如果静态方法确实增加了对象的内存占用,您会注意到吗?

      【讨论】:

      • 我不会,但其他人对我使用实际上只有六个成员变量和一些大型静态函数的“巨大”对象提出了质疑。我只是想检查一下我的理解:)
      猜你喜欢
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多