- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Это пробовали уже, но толку нет, потому как на тест сервере все работает.
значения приблизительно такие:
index.php_start: 524288
login.php_start: 12209888
index.php_end: 15728640
php.ini лимит 32M, на неработающем сервере 64
Происходит какое-то событие, вследствие которого ранее нормально работающий процесс вдруг сжирает всю память. Как его найти средствами пхп? Может ли дело быть не в просто нехватке памяти ,а в какой-то fatal error?
я же привел пример. поставь после каждого echo memory_get_usage() и смотри
так это ничего не дает. память плавно увеличивается
от 524288
до
15728640
есть ли смысл на неработающем сервере поставить ini_set('memory_limit','1000M'); в index.php например, чтобы найти процесс который ест память?
Происходит какое-то событие, вследствие которого ранее нормально работающий процесс вдруг сжирает всю память
память плавно увеличивается
ты сам ответил на свой вопрос.
ini_set('memory_limit','1000M');
на обычных хостингах эта деректива обычна запрещена к изменению.
А что мешает включить вывод всех ошибок?
на тест сервере память плавно увеличивается, я ищу ошибку на тест-сервере а на живом сервере могу уже предложить работающее решение, например увеличить память до 1000м временно и отследить в режиме отладки до какой точки дойдет скрипт (если получится).
на живом сервере вывод ошибок отключен.
ini_set разрешено
есть ли смысл в таких случаях увеличивать память до 1000?
есть ли смысл в таких случаях увеличивать память до 1000?
люди доп. сервера ставят :) а что за процессы то если не секрет?
Здраствуйте!Необходимо отпарсить очень много ссылок!Написал вот так
for($i=0;$i<count($link);$i++) {
// инициализируем обычный объект curl
$url=str_replace('href=',"",$link[$i]);
$url=str_replace('class="catBigLink"',"",$url);
$url=str_replace('"',"",$url);
$url=str_replace('//',"",$url);
$urlpars="http://www.komus.ru".$url;
//echo($urlpars."<br>");
$handles[$i] = curl_init();
// устанавливаем настройки соединения
curl_setopt($handles[$i] , CURLOPT_URL, $urlpars);
curl_setopt($handles[$i] , CURLOPT_HEADER, 0);
curl_setopt($handles[$i] , CURLOPT_RETURNTRANSFER, true);
curl_setopt($handles[$i] , CURLOPT_TIMEOUT, 15);
// добавляем текущий объект curl в пул multi curl
curl_multi_add_handle($mh,$handles[$i]);
}
// выполняем запрос
$running=null;
do
{
curl_multi_exec($mh,$running);
} while ($running > 0);
// получаем контент со всех сайтов
for($i=0;$i<count($handles);$i++)
{
// получаем контент с определенного сайта
$result= curl_multi_getcontent($handles[$i]);
preg_match_all('/href=.\/catalog.php.catID=[0-9]{1,4}..class="catBigLink"/is', $result, $temp);
//print_r($temp);
for($k=0;$k<count($temp1[0]);$k++)
{
$ssilk[count($ssilk)]=$temp1[0][$k];
}
// удаляем из пула текущий объект curl
curl_multi_remove_handle($mh,$handles[$i]);
if ($temp[0][0]!="") pars1($temp);
}
// освобождаем ресурсы
curl_multi_close($mh);
Но данная конструкция очень долго работает!!!Как ее можно оптимизировать!Заранее спасибо
Здраствуйте!Необходимо необходимо отпарсить очень много ссылок!Написал вот так
for($i=0;$i<count($link);$i++) {
// инициализируем обычный объект curl
$url=str_replace('href=',"",$link[$i]);
$url=str_replace('class="catBigLink"',"",$url);
$url=str_replace('"',"",$url);
$url=str_replace('//',"",$url);
$urlpars="http://www.komus.ru".$url;
//echo($urlpars."<br>");
$handles[$i] = curl_init();
// устанавливаем настройки соединения
curl_setopt($handles[$i] , CURLOPT_URL, $urlpars);
curl_setopt($handles[$i] , CURLOPT_HEADER, 0);
curl_setopt($handles[$i] , CURLOPT_RETURNTRANSFER, true);
curl_setopt($handles[$i] , CURLOPT_TIMEOUT, 15);
// добавляем текущий объект curl в пул multi curl
curl_multi_add_handle($mh,$handles[$i]);
}
// выполняем запрос
$running=null;
do
{
curl_multi_exec($mh,$running);
} while ($running > 0);
// получаем контент со всех сайтов
for($i=0;$i<count($handles);$i++)
{
// получаем контент с определенного сайта
$result= curl_multi_getcontent($handles[$i]);
preg_match_all('/href=.\/catalog.php.catID=[0-9]{1,4}..class="catBigLink"/is', $result, $temp);
//print_r($temp);
for($k=0;$k<count($temp1[0]);$k++)
{
$ssilk[count($ssilk)]=$temp1[0][$k];
}
// удаляем из пула текущий объект curl
curl_multi_remove_handle($mh,$handles[$i]);
if ($temp[0][0]!="") pars1($temp);
}
// освобождаем ресурсы
curl_multi_close($mh);
Но данная конструкция очень долго работает!!!Как ее можно оптимизировать!Заранее спасибо
Эту конструкцию нужно полностью удалить и написать какую конкретно задачу нужно выполнить.
В аттаче нормальный класс.
[ATTACH]42673[/ATTACH]
А ещё лучше - http://seoamster.ru/?p=76
ewg777, Огромное спасибо
сложный вопрос :
почему при живом и довольно давно доступном классе от Вадима Тимофеева (multicurl-1.06.zip) все толкают какую-то свою фигню? только там, кстати, описано как ограничивать потребляемую память.