php подчищаем память

не забываем делать unset переменных

Иногда сайт начинает еле ворочиться и можно даже получить это:
Resource Limit Is Reached
The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

Проверяем утечку памяти в php скриптах с помощью функции memory_get_usage().

В конце модуля не забываем unset($par) - это реально уменьшает используемую память!
Но внутри функции очищать переменные не надо, php сам подчищает память , выделенную под локальные переменные.


 echo "ffffff" - НЕ выделяет памяти
 $ff="ffffff" - выделяет память

Многократный вызов функции не увеличивает расход памяти.

Способ передачи параметра в функцию (как значение или по ссылке) не влияет на расход память , т.к. функция подчищает свои локальные переменные при выходе.

Рекурсия - многократно вложенные вызовы одной и той же функции тоже не увеличивают расход памяти.

// комментарии также не расходуют память

Mysql запросы и их обработка


$sql7="SELECT * FROM `$mysql_dbname`.`t123` WHERE `boss`=1 ";

if(!$res7=$mysqli->query($sql7))
	exit;

$aa=array();
while($row=$res7->fetch_assoc())
{
	echo "\n".$row["pri"];  // НЕ расходует память
	$aa[]=$row; // РАСХОДУЕТ память
}
$res7->close(); // высвобождает всего 40 байт

Выводы

Складывается впечатление, что накапливать переменные с данными нецелесообразно. А вот выводить сразу в поток (echo) однозначно полезно для сокращения расхода памяти.