Как освободить память от Доктрины? - PullRequest
0 голосов
/ 24 января 2012

если у меня есть хранилище сущностей и я вызываю метод findAll (), как я смогу после этого освободить память?Я запустил небольшой тест, используя $ entityManager-> clear (), но он не справился.Заранее спасибо за помощь!

1 Ответ

2 голосов
/ 24 января 2012

Вам нужны все записи? Можете ли вы фильтровать результаты, чтобы меньше объектов создавалось. Проблема с php иногда заключается в том, что он не позволит вам освободить память, пока процесс не закончится.

Вы можете попробовать это с unset () , если вам нужны все записи. Но имейте в виду, что память не будет свободной, я думаю, что сборщик мусора в PHP имеет проблемы с циклическими ссылками, я полагаю, доктрина имеет такие ссылки, чтобы быть мощными.

Похожий на ваш вопрос с примером: Почему функция PHP Doctine free () не работает?

Если это командная строка с массовой итерацией, пожалуйста, попробуйте

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

как описано здесь: http://www.doctrine -project.org / blog / doctrine2-batch-processing

...