Пост навеян статьей Сколько памяти потребляют объекты в PHP..., размышлениями над самописной ORM и книгой Мэтта Зандстра «PHP. Объекты, шаблоны и методики программирования» (ISBN 978-5-8459-1689-1).
Мэтт в главе «Шаблоны баз данных» пишет о том, что если нужно создать несколько тысяч объектов из базы, то для экономии памяти, нужно решать эту задачу не «в лоб», а генерировать объекты по требованию, используя интерфейс Iterator.
Первая мысль была: «Если мы достали 5000 записей из базы, значит мы хотим все их как-то обработать, и какая разница. сразу будут созданы объекты или по требованию?», но потом понял — если вся работа с каждым объектом происходит внутри цикла foreach или while( next() ), то создание объекта по требованию и автоматическое его уничтожение на следующем витке цикла даст существенную экономию памяти. На деле оказалось — очень существенную.
Читать полностью »
Метка «потребление памяти»
Как сэкономить память, если нужно обработать большое количество объектов-моделей
2012-12-27 в 10:38, admin, рубрики: iterator, php, оптимизация, потребление памяти, метки: iterator, PHP, оптимизация, потребление памятиСколько памяти потребляют объекты в PHP и стоит ли использовать 64-битную версию?
2012-12-13 в 13:15, admin, рубрики: php, оптимизация, потребление памяти, Серверная оптимизация, метки: PHP, оптимизация, потребление памяти
На этот пост меня вдохновило исследование потребления памяти для моего текущего большого проекта на ZendFramework. Как обычно, по результатам исследования, я был шокирован нашей программистской самонадеянностью, которая нередко присутствует, когда мы пишем что-либо большое на PHP. Да и, наверное, не только на PHP.
Но обо всём по порядку.
Данная статья является логическим продолжением следующих статей: