Очень сложные вопросы по ПХП

N0
На сайте с 12.11.2007
Offline
45
#41

Это пробовали уже, но толку нет, потому как на тест сервере все работает.

значения приблизительно такие:

index.php_start: 524288

login.php_start: 12209888

index.php_end: 15728640

php.ini лимит 32M, на неработающем сервере 64

Происходит какое-то событие, вследствие которого ранее нормально работающий процесс вдруг сжирает всю память. Как его найти средствами пхп? Может ли дело быть не в просто нехватке памяти ,а в какой-то fatal error?

Пластиковые окна Москва (http://vse-plastikovie-okna.ru) Стеклопакеты Москва (http://e-steklopaketi.ru)
iNd
На сайте с 20.03.2009
Offline
122
iNd
#42

я же привел пример. поставь после каждого echo memory_get_usage() и смотри

N0
На сайте с 12.11.2007
Offline
45
#43

так это ничего не дает. память плавно увеличивается

от 524288

до

15728640

есть ли смысл на неработающем сервере поставить ini_set('memory_limit','1000M'); в index.php например, чтобы найти процесс который ест память?

iNd
На сайте с 20.03.2009
Offline
122
iNd
#44
nat000:
Происходит какое-то событие, вследствие которого ранее нормально работающий процесс вдруг сжирает всю память
nat000:
память плавно увеличивается

ты сам ответил на свой вопрос.

nat000:
ini_set('memory_limit','1000M');

на обычных хостингах эта деректива обычна запрещена к изменению.

А что мешает включить вывод всех ошибок?

N0
На сайте с 12.11.2007
Offline
45
#45

на тест сервере память плавно увеличивается, я ищу ошибку на тест-сервере а на живом сервере могу уже предложить работающее решение, например увеличить память до 1000м временно и отследить в режиме отладки до какой точки дойдет скрипт (если получится).

на живом сервере вывод ошибок отключен.

ini_set разрешено

есть ли смысл в таких случаях увеличивать память до 1000?

iNd
На сайте с 20.03.2009
Offline
122
iNd
#46
nat000:
есть ли смысл в таких случаях увеличивать память до 1000?

люди доп. сервера ставят :) а что за процессы то если не секрет?

Join666
На сайте с 04.12.2008
Offline
25
#47

Здраствуйте!Необходимо отпарсить очень много ссылок!Написал вот так

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);

Но данная конструкция очень долго работает!!!Как ее можно оптимизировать!Заранее спасибо

Лучший сайт для поиска работы (http://www.rabcenter.ru)! Пишу скрипты (/ru/forum/378488)!
ewg777
На сайте с 04.06.2007
Offline
225
#48
Join666:
Здраствуйте!Необходимо необходимо отпарсить очень много ссылок!Написал вот так
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

zip multicurl-1.06.zip
Join666
На сайте с 04.12.2008
Offline
25
#49

ewg777, Огромное спасибо

N
На сайте с 06.05.2007
Offline
419
#50

сложный вопрос :

почему при живом и довольно давно доступном классе от Вадима Тимофеева (multicurl-1.06.zip) все толкают какую-то свою фигню? только там, кстати, описано как ограничивать потребляемую память.

Кнопка вызова админа ()

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий