|
|
1
6
据我所知,你的代码似乎没有错。..
这样做时,我有这样的输出:
考虑到表格非常简单,而且我只取了一行,这对我来说似乎也“很多”——但这与你得到的结果以及我在其他项目上看到的结果非常一致:-(
只有40KB的差异——好吧,对于更大的对象/更多的行,这可能仍然是一个好主意。..
|
|
|
2
5
我同意romab的回答——在使用大型libs/framework时,使用OpCode缓存是必须的。
APC结果:
|
|
|
3
4
那么,这些内存使用量是从哪里来的呢?正如Pascal MARTIN所指出的,数组水合作用并没有太大区别,这是合乎逻辑的,因为我们在这里只讨论了一些记录。 内存消耗来自通过自动加载按需加载的所有类。
|
|
|
4
4
如果你只需要从数据库中获取一条记录,请确保:
大桌子上的内存使用量大幅下降。
|
|
|
5
2
Doctrine在Doctrine_Record、Doctrine_Collection和Doctrine_Query上提供了一个free()函数,该函数消除了对这些对象的循环引用,将它们释放出来进行垃圾收集。 More info..
|
|
|
6
1
在Doctrine 1.1中,默认的自动加载行为被称为“主动”,这意味着即使你在任何特定请求中只使用了一两个模型类,它也会加载你的所有模型类。将该行为设置为“保守”将减少内存使用。 |
|
|
7
0
|