Страница 1 из 2

PHP Out of memory

Добавлено: 06 сен 2014, 13:57
newd
Вчера столкнулся с проблемой при обработке больших файлов(200-300Мб)
Fatal error: Out of memory (allocated 157286400) (tried to allocate 345026221 bytes)
.
Думаю, да ладно - не беда. На ноуте 12 гигов память, выдам сколько надо.
Выставил мемори лимит в пхп.ини на 2 гига. Не помогло.
Выставил через ини_сет. Не помогло. Крутил вертел. Попробовал и 5.4 и 5.5 версии. В итоге так и не победил. Пришлось обрабатывать кусками по 50Мб.
На ноуте стоит Вин8.1.Оупен Сервер версии 5.1.1. Работа велась через консоль ConEmu.
Кто нибудь сталкивался с такими вылетами по причине нехватки памяти, когда памяти и выделено достаточно и физически достаточно?

Добавлено: 06 сен 2014, 14:09
Максим
newd, поменяйте параметр в шаблоне конфигурации, как и положено, и перезапустите сервер, после чего переоткройте консоль.

Добавлено: 06 ноя 2014, 21:24
CrazyPHP
У меня та же проблема, вот скрины:

Параметр memory_limit показываемый phpinfo: http://joxi.ru/lJ2bXgXpcPM1r6 (4 GB)
Ошибка о недостатке памяти: http://joxi.ru/1bmobEbPTDlLry (всего 1 GB)

Какой ещё шаблон? Изменял вот тут: http://joxi.ru/gkrDkzkVTpdjAp

Добавлено: 06 ноя 2014, 21:37
Максим
CrazyPHP, в Windows 32-битный модуль PHP (который используется в Open Server) имеет максимальный лимит ~1.5 ГБ, а с учётом расширений PHP (intl, memcache,mongo, ioncube и т.д.) которые есть в Open Server и их настроек скрипту реально достаётся от 0.8 до 1.3 гигабайта максимум. Так что поставьте значение memory_limit = -1 это вообще отключит лимит. Если память нужна позарез, отключите все расширения PHP и расширения Zend (zend optimizer, ioncube, x-debug).

Если после выполнения этих настроек скрипту всё равно не получится занять более 1 гига памяти, то убедитесь что она у вас вообще есть, эта свободная память. Мало ли, может у вас в компьютере памяти всего 2 гига и открыто 100 вкладок в браузере.

Подождите ближайшего обновления Open Server, там будет 64-битный PHP не имеющий проблем с лимитами по памяти.

Добавлено: 19 ноя 2014, 04:27
Максим
Ошибочка вышла, до полутора гигов лимит, а не до двух. Выяснил только сейчас на тестах и потом уже полез в google. Поправил предыдущее сообщение.

P.S. В тестах интересное получил, особенно расширение php_intl "порадовало". Если в php.ini оставить только одну строку memory_limit = -1 то получится прочитать файл в строку размером 1.56 ГБ. Если же использовать тот php.ini что идёт изначально в комплекте с Open Server ничего не отключая, то у меня получилось читать файлы размером лишь чуть больше 800 мегабайт. Если отключить расширение php_intl то уже размером до 1.25 гига файлы спокойно прочитываются.

Добавлено: 19 ноя 2014, 10:24
CrazyPHP
Да пришлось обойти ограничение обработкой по очень маленьким порциям.

Добавлено: 05 мар 2015, 21:00
newd
Cервер с 64 битной версией php когда планируется?
Хочется без танцев с бубнами )

Добавлено: 06 мар 2015, 12:09
Максим
newd писал(а):Cервер с 64 битной версией php когда планируется?
Хочется без танцев с бубнами )
Должна была быть ещё на новый год. Но сначала я долго болел, потом началась запара по работе (и сейчас есть), поэтому к сожалению не могу найти времени сделать релиз. Думаю что в течении 2 недель будет, во всяком случае я постараюсь.

Добавлено: 06 мар 2015, 19:44
newd
Спасибо вам Максим! Что развиваете проект.
Я вчера прикрутил себе php5.5x64 + apache2.4x64 полет нормальный ))

Добавлено: 17 ноя 2015, 15:25
AdeptO
newd писал(а):PHP Out of memory
неподскажеш как? у меня щас такая проблема нифига непомагает