Почему ob get clean-очищает память без запуска буфера с ob start()?
Я был один день, делая тесты, анализировались, как функции влияют на использование памяти, и, по счастливой случайности, я назвал функцию ob_get_clean()
.
Я заметил, что вызов функции "сократился" размер памяти, используемый php.
ob_start()
я заметил, что если увеличивается использование памяти, как и следовало ожидать, так как даже сохраняет вывод в буфер.
Сейчас не понимаю, почему ob_get_clean()
"очистили" некоторое значение буфера, снижение памяти, причем ob_start()
и не был вызван в любом месте кода.
Ниже результаты, которые я получил:
<?php
echo memory_get_usage(); //122224
?>
<?php
ob_get_clean();
echo memory_get_usage(); //113992
?>
Кто-нибудь знает, почему при вызове ob_get_clean()
память уменьшилась?
Есть ли конфигурации в php.ini, который начинается буфера автоматически, или что-то типа?
1 answers
Да, есть.
В php.ini
, как настроен параметр output_buffering
?
output_buffering=On
Активного выходного буфера автоматически.
Вы можете отключить его:
output_buffering=Off
, Или указать размер буфера:
output_buffering=4096
См. подробнее: Output Buffering в руководстве PHP