Я пытаюсь уменьшить использование памяти на скрипте большого цикла, поэтому я сделал этот небольшой тест. Использование Доктрины я запускаю этот код:Где моя утечка памяти в этом коде Doctrine 1.2?
$new_user_entry = getById($new_user_entries[0]['id']);
unset($new_user_entry);
$new_user_entry = getById($new_user_entries[1]['id']);
unset($new_user_entry);
function getById($holding_id)
{
return Doctrine_Core::getTable('UserHoldingTable')->findOneById($holding_id);
}
Но это уходит около еще 50 КБ в памяти каждый раз, когда я делаю GetByID и снят с охраной, и я не знаю, почему и как изменить его. У меня есть цикл, который проходит через тысячи из них плюс пара других функций, и это создает проблему.
У вас есть кэширование включено в Доктрине? http://www.doctrine-project.org/documentation/manual/1_2/en/caching:query-cache-&-result-cache – Archimedix
Если он активен по умолчанию, да. Но я не включил его сам. – gokujou
Что ж, если бы кеширование было включено, это объясняло бы вашу утечку памяти. У доктрины все еще были бы кешированные объекты, потому что вы только освободили бы их ссылки на них, но не ссылки на Доктрину. – Archimedix