Fatal error: Out of memory allocated ...

doxx

|||llll|||||llll|||
Регистрация
18 Фев 2009
Сообщения
1.055
Реакции
212
Проблема, выдает что-то типа такой ошибки
Fatal error: Out of memory (allocated 3145728)...
Скрипт элементарный, отправляет веб запросы, с некоторыми паузами( sleep )
задан на постоянное выполнение циклом while,
даже никакого парсинга нет,
после 3-5 прохождений, скрипт начинает долго-долго думать, не выполняется, и в итоге вываливается такая ошибка...
WinXP
гуглил это ошибку, но ничего толком не нашёл,
Установлен денвер, скрипт кидался в туже папку с интерпретатором пхп .. (C:\WebServers\usr\bin), запускался через cmd

Так же стоит AppServ ( может как-то конфликтуют? )
Везде где можно в php ini в memory прописывал и 128 и 512 мб и 1024
результат тот же..
Как быть?
 
Проблема, выдает что-то типа такой ошибки
Fatal error: Out of memory (allocated 3145728)...
Скрипт элементарный, отправляет веб запросы, с некоторыми паузами( sleep )
задан на постоянное выполнение циклом while,
даже никакого парсинга нет,
после 3-5 прохождений, скрипт начинает долго-долго думать, не выполняется, и в итоге вываливается такая ошибка...
WinXP
гуглил это ошибку, но ничего толком не нашёл,
Установлен денвер, скрипт кидался в туже папку с интерпретатором пхп .. (C:\WebServers\usr\bin), запускался через cmd
Так же стоит AppServ ( может как-то конфликтуют? )
Везде где можно в php ini в memory прописывал и 128 и 512 мб и 1024
результат тот же..
Как быть?

Покажите скрипт.
Без него трудно говорить о чем-то.
Есть вероятность что у вас бажная версия апача, возможно что в системе что-то жрет ресурсы, возможно скрипт съедает все...
Слишком много всяких возможно.
 
Покажите скрипт.
Без него трудно говорить о чем-то.
Есть вероятность что у вас бажная версия апача, возможно что в системе что-то жрет ресурсы, возможно скрипт съедает все...
Слишком много всяких возможно.
скрипт такого такой:
Код:
<?php
set_time_limit(0);

sleep(10);

while(true) { 
//
file_get_contents('');
echo ' ';

sleep(10);

file_get_contents('');
echo ' ';

sleep(10);

file_get_contents('');
echo ' ';

sleep(10);

file_get_contents('');
echo ' ';

sleep(10);

}
?>
и всё.. кажись методом тыка понял в чем проблема была,
в урле генерируется случайно число, и в некоторых случаях при веб запросе начинается подгружаться большой объем информации, через браузер даже страница в этом случае не грузится, значок часов, с ожиданием когда все данные вылезут...
Вот походу file_get_contents ждет пока весь тип данных загрузится, а т.к. это неизвестно когда произойдет, перегружается память видимо...

Как бы сделать чтобы отправлялся веб-запрос , и не ждать полной отдачи от этого запроса? Чтоб перегрузки не было.. Ну или ждать 5 секунд, например..
 
в file_get_contents можно задать максимальный размер принимаемых данных, по достижении которого чтение будет остановлено.
что-то вроде
file_get_contents($f,null,null,-1,100500)
 
  • Нравится
Реакции: doxx
Назад
Сверху