скрытое меню

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

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

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

Проверяем утечку памяти с помощью функции 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) однозначно полезно для сокращения расхода памяти.

Яндекс.Метрика