четверг, 23 ноября 2017 г.

Использование памяти в PHP

В последнее время начал задумываться об использовании памяти в тех ЯП, которыми пользуюсь.
По PHP нашел вот такую статью по использвоанию памяти. Очень понравилась эта статья.
Дальше некоторые данные по использованию памяти разными конструкциями языка PHP.
Скалярная переменная 76 байт
$a = array(); 164 байта
class A { } $a = new A(); 184 байта
$a = new stdClass(); 272 байта
цикл foreach Увеличивает потребление памяти, с каждой итерацией, видимо сохраняя значения каждой итерации в промежуточные внутренние структуры, но после завершения цикла, эта память будет освобождена.
Понравился пример, в котором значение в цикле foreach передается по ссылке и при удалении ключа и значения на каждой итерации цикла мы не теряем память.
foreach ($a as $k=>&$v) {
   $a[$k] = someBigValue();
   $v = someBigValue();unset($k, $v);
   echo 'In FOREACH cycle.'.PHP_EOL;
   memoryUsage(memory_get_usage(), $base_memory_usage);
}
И еще статья по потреблению памяти объектами.

Комментариев нет:

Отправить комментарий

Linux командная строка узнаем оставшееся место

Чтобы посмотреть общую картину того, сколько места осталось в системе можно выполнить команду: df -h Чтобы вывести на экран сколько мес...