如何释放Doctrine的记忆?

时间:2012-01-24 00:05:24

标签: php doctrine

如果我有一个实体存储库并调用findAll()方法,那我怎么能在之后释放内存?我使用$ entityManager-> clear()运行了一个小测试,但它没有完成这项工作。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要所有记录吗?可以过滤结果,因此创建的对象更少。 php的问题有时是,在进程结束之前它不会让你释放内存。

如果您需要所有记录,可以使用 unset()进行尝试。但请注意,内存不会是免费的,我认为PHP的垃圾收集器有一个循环引用的问题,我猜这个教程有这样的参考是强大的。

与你的一个类似的问题是一个例子: Why is PHP Doctine's free() not working?

如果是具有大规模迭代的命令行,请尝试

$this->_em->detach($row[0]);

如此处所述:http://www.doctrine-project.org/blog/doctrine2-batch-processing