ustas
Элекомист №1
не совсем вопрос, но не многовато ли массивы потребляют памяти?
Столкнулся с лимитом выделяемой памяти, посмотрел, эти гады(массивы) все скушали
в тесте текст на 200 кб превращается почти в пять мегов.
Получается остальное занимает индекс? Жжутся что то такие индексы, допустим ++4mb / 50000 = 80-100 байт
на каждый индекс?
Причем в конкретном примере можно array_fill(,, '1'); или array_fill(, ,'12345678');,
это больше чем среднее 3 (символа) в str_repeat("Это текст на 100 кб \n", 10000);
и видим array_fill экономит почти метр,. значит индекс на те же данные меньше и возможна
оптимизация или это связано с постоянным (news)Improved Zend Memory Manager
После этого я понял почему одна (ну всем она не нравится) cms требует 32 мб,
особенно когда посмотрел чем она кушает.
выводы пока не делаю ...
да кстати сначала думал может с классами проблема, оказывается что нет. ArrayObject еще поюзаю, может не так кушает?
ссылка на пример http://www.phpclub.ru/paste/1851
результат
старт 94 056 кб
str_repeat * 10000 304 200 кб
unset(new Test()) 4 968 288 кб
50001$test->parse 4 968 976 кб
unset($block) 368 680 кб
50001explode 4 969 336 кб
implode(null, $block) 528 960 кб
unset($block) 368 736 кб
50001array_fill $block 3 004 080 кб
конец 368 808 кб
Столкнулся с лимитом выделяемой памяти, посмотрел, эти гады(массивы) все скушали
в тесте текст на 200 кб превращается почти в пять мегов.
Получается остальное занимает индекс? Жжутся что то такие индексы, допустим ++4mb / 50000 = 80-100 байт
на каждый индекс?
Причем в конкретном примере можно array_fill(,, '1'); или array_fill(, ,'12345678');,
это больше чем среднее 3 (символа) в str_repeat("Это текст на 100 кб \n", 10000);
и видим array_fill экономит почти метр,. значит индекс на те же данные меньше и возможна
оптимизация или это связано с постоянным (news)Improved Zend Memory Manager

После этого я понял почему одна (ну всем она не нравится) cms требует 32 мб,
особенно когда посмотрел чем она кушает.
выводы пока не делаю ...
да кстати сначала думал может с классами проблема, оказывается что нет. ArrayObject еще поюзаю, может не так кушает?
ссылка на пример http://www.phpclub.ru/paste/1851
результат
старт 94 056 кб
str_repeat * 10000 304 200 кб
unset(new Test()) 4 968 288 кб
50001$test->parse 4 968 976 кб
unset($block) 368 680 кб
50001explode 4 969 336 кб
implode(null, $block) 528 960 кб
unset($block) 368 736 кб
50001array_fill $block 3 004 080 кб
конец 368 808 кб