В настоящее время я работаю над проектом Symfony (const VERSION = '2.5.10'), и я использую xampp. Версия PHP – 5.5.19.
Моя проблема заключается в том, что каждый раз, когда я запускаю среду dev, я получаю сообщение об ошибке:
OutOfMemoryException: Ошибка: разрешенный размер памяти 1073741824 байт исчерпан (пытался выделить 3358976 байт) в C: \ xampp \ htdocs \ Editracker \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Profiler \ FileProfilerStorage.php line 153
и каждый раз, когда я обновляю страницу, она дает разный объем памяти. Я также думаю, что это также является причиной того, что моя среда для разработчиков занимает некоторое время, прежде чем она обновит страницу.
Ваша помощь приветствуется.
php.ini
memory_limit = '256M'
Я попытался увеличить лимит памяти, но все же он дает ошибку об ограничении памяти
Самый интересный компонент в Symfony – это профилировщик. Если вам не нужен профайлер в некоторых конкретных действиях, вы можете отключить его с помощью кода:
if ($this->container->has('profiler')) { $this->container->get('profiler')->disable(); }
Вы также можете установить глобальный параметр в config:
framework: profiler: collect: false
Вы либо отключите профилировщик symfony (я не думаю, что это то, что вы хотите, насколько мне известно), либо установите ограничение на неограниченное число с -1
в php.ini и перезапустите apache.
memory_limit = -1
Если ограничение памяти достигается только в среде Symfony dev, я бы предложил добавить следующее в web/app_dev.php
ini_set('memory_limit', '-1');
Таким образом, вы можете продолжать тестировать производство с разумным объемом памяти. Изменение всей среды через php.ini может скрыть ошибку в строке.
Я решил ошибку Out of memory на отладке Twig, установив XDebug.
Поскольку Twig использует внутреннюю функцию PHP var_dump, установите XDebug – хорошая идея, потому что она ограничивает вывод массивов и объектов var_dump () на 3 уровня глубиной, как мы можем видеть в вашей документации .
Кредиты на @peezi .