Я работаю с очень большими массивами. Иногда я вижу такое сообщение:
Разрешенный размер памяти 1468435456 байт исчерпан (пытался выделить 4194312 байт) в /app/application/MyClass.php на строка 107
Очевидно, что общее использование памяти чертовски велико. Но если посмотреть на эту строку ошибки, то видно, что она просто присваивает элемент массиву:
$this->result_object[] = $row;
Я знаю, что $row очень мал. (Не то чтобы это имело значение, $row уже выделен). Я знаю, что $this->result_object может быть очень, очень большим массивом (> 100 тысяч элементов) из очень, очень маленьких элементов.
Почему это простое добавление требует выделения 4 МБ оперативной памяти?
Подробнее здесь: https://stackoverflow.com/questions/783 ... n-an-array