2011-11-02 52 views
0
消耗

我的问题是什么呢消耗更多的内存:存储器而传递对象作为参数在PHP

  1. 传递对象作为参数的方法中
  2. 通行证ID整数作为参数,然后创建一个对象从该ID

非常感谢您提前。

+1

最终结果是同一个对象吗? “ID”从哪里来? – Phil

+3

除非你的对象正在处理很多MB的数据,否则我会称之为[过早优化](http://c2.com/cgi/wiki?PrematureOptimization)... – DaveRandom

+0

对象是数据库中一个行元素的实例。我们有我们的内部ORM。 – Goran

回答

2

由于对象总是通过引用在PHP中传递,并通过ID创建它可能会创建一个重复的对象,如果它存在于函数之外,我会说方法1更具有内存效率。

1

2将消耗更多的实际内存,因为除了对象本身之外,您还必须访问数据库(除非您使用的是像Doctrine 2这样的智能ORM,它保留对已获取对象的引用,以节省数据库命中)

1将消耗在比已经使用的对象的所有其他没有记忆,因为你只发送给它的引用(在PHP中,对象是由默认参考)

我会选1的任何传递天