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