2011-12-02 83 views
0

致命错误内存耗尽:用尽134217728个字节允许内存大小。学说获取对象创建在约4000对象

在有些情况下,我需要创建的数以千计的结果10的少数情况,但显然这是造成巨大的内存问题。有没有减少对大型查询集内存中的任何方式?

回答

1

这取决于你将如何使用结果:

  • 如果你不需要的结果作为对象,但数组就足够了,你 可以改变水化模式: ->setHydrationMode(Doctrine::HYDRATE_ARRAY)可用于检索 数据多维数组(其它水化模式可以发现 上doctrine documentation
  • ,如果你需要的对象的结果(例如在foreach循环)还记得在使用后释放他们: $myobject->free(); /* if using php 5.2 also unset($myobject) */ 也看在教义docs on performance improving
  • 也禁用调试工具栏上的帮助很大学说收藏了很多:sfConfig::set('sf_debug', false);