Memory 提取对象会导致大约4000个对象的内存耗尽

Memory 提取对象会导致大约4000个对象的内存耗尽,memory,doctrine,Memory,Doctrine,致命错误:允许的内存大小134217728字节已用尽 在一些情况下,我需要创建10个成千上万的结果,但显然这会导致巨大的内存问题。有没有办法减少大型查询集的内存?这取决于您将如何使用结果: 如果您不需要将结果作为对象,但数组就足够了 可以改变水合模式: ->setHydrationMode(条令::hydration\u数组)可用于检索 多维数组中的数据(可以找到其他模式 上) 如果需要对象作为结果(例如在foreach循环中),请记住在使用后释放它们: $myobject->free();/

致命错误:允许的内存大小134217728字节已用尽


在一些情况下,我需要创建10个成千上万的结果,但显然这会导致巨大的内存问题。有没有办法减少大型查询集的内存?

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

  • 如果您不需要将结果作为对象,但数组就足够了 可以改变水合模式:
    ->setHydrationMode(条令::hydration\u数组)
    可用于检索 多维数组中的数据(可以找到其他模式 上)
  • 如果需要对象作为结果(例如在foreach循环中),请记住在使用后释放它们:
    $myobject->free();/*如果使用PHP5.2还未设置($myobject)*/
    再看看教义
  • 此外,禁用调试栏对大型条令集合也有很大帮助:
    sfConfig::set('sf_debug',false)