На вход обработки multi curl подаю массив из ссылок, файлы по которым весят в среднем 300-500кб.Но проблема в том что,например, при сотне ссылок курл думает почти что 4 минуты, и только потом начинает создавать потоки и качать.Если же я подаю массив из 1000 ссылок, то время раздумий может вообще перевалить за 20 минут, что, как мне кажется, совершенно не нормально.Как можно оптимизировать код, чтобы он работал быстрее и не тормозил так?Может можно как-то искусственно ограничить число потоков хотя бы до 10?
$mh = curl_multi_init();
foreach($clear_pager as $i => $url)
{
$ch[$i] = curl_init($url);
curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $ch[$i]);
}
do {
$execReturnValue = curl_multi_exec($mh, $runningHandles);
} while ($execReturnValue == CURLM_CALL_MULTI_PERFORM);
while ($runningHandles && $execReturnValue == CURLM_OK) {
// Wait forever for network
$numberReady = curl_multi_select($mh);
if ($numberReady != -1) {
// Pull in any new data, or at least handle timeouts
do {
$execReturnValue = curl_multi_exec($mh, $runningHandles);
} while ($execReturnValue == CURLM_CALL_MULTI_PERFORM);
}
}
$schetchik = 1;
$allin = count($clear_pager);
foreach($clear_pager as $i => $url) {
$current_file = curl_multi_getcontent($ch[$i]);
file_put_contents(dirname(__FILE__).'/arts/'.$GLOBALS['a'].'/'.basename($url), $current_file);
$schetchik++;
unset($current_file);
echo '#::['.$schetchik.' of '.$allin.']: '.$url."</br>";
flush();
curl_multi_remove_handle($mh, $ch[$i]);
curl_close($ch[$i]);
}
curl_multi_close($mh);
И если подаю большие массивы, то стабильно вываливается фатальная ошибка об переполнении памяти. пытался втиснуть unset после file_put_contents(), но эффекта вообще ноль.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет! Пишу api, задача выдать файл pdf на скачиваниеФайл скачивается, но в конец дописывается текст: © Copyright 2013 - 2018 by Zend Technologies Ltd
Номер и имя человека мне приходит в datatxt, но прикрепленные файлы не приходят, опишите пожалуйста подробно что сделать что бы они тоже приходили
Стоит задача: отправлять пользователям сайта Web PUSH уведомления, когда наступает определенное событиеДелать это необходимо максимально быстро...