Является ли память, выделенная PHP одним запросом, всегда выпущенным в конце?

Я немного запутался в утечке памяти в PHP.

Я читал, что PHP автоматически освобождает память, используемую в каждом запросе, благодаря Zend Memory Manager: http://www.webreference.com/programming/php_mem/2.html

Но я вижу много людей и темы (даже здесь, в SO), связанные с PHP и утечками памяти.

Поэтому я чувствую, что что-то теряю.

Возможно ли иметь утечки памяти в PHP между разными запросами?

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

    Гораздо большая проблема заключается в том, что дочерние процессы Apache имеют пространство памяти PHP внутри них. Они набухают, чтобы выделить пиковое использование памяти скриптом PHP, а затем сохранить это распределение памяти до тех пор, пока не будет убит дочерний процесс (как только процесс попросит ядро ​​выделить часть памяти, эта память не будет выпущена до тех пор, пока процесс не умрет ). Для более подробного объяснения того, почему это проблема и как бороться с ней, см. Мой ответ на « Ошибка сервера» .

    Утечка памяти в скрипте, где переменные не отключаются и сборщик мусора PHP терпит неудачу, очень редки – большинство скриптов PHP работают в течение нескольких сотен миллисекунд, и этого обычно недостаточно для даже серьезной утечки памяти.

    Вы можете контролировать, сколько памяти использует ваш PHP-скрипт с memory_get_usage() и memory_get_peak_usage() – есть также хорошее объяснение использования памяти и как защищаться программой в руководстве по PHP .

    Управление памятью PHP подробно описано в этой статье .

    edit: Вы можете определить скомпилированные в модулях Apache с помощью httpd -l – значения по умолчанию зависят от конфигурации ОС и конфигурации репозитория. Существует множество способов взаимодействия PHP с Apache – наиболее подробно описано здесь .