Используя наименьшее количество оперативной памяти с curl_exec - PullRequest
2 голосов
/ 04 апреля 2011

Не могли бы вы сказать, какие примеры кода используют меньше всего оперативной памяти? Вот два моих примера:

$ch = curl_init();

foreach ($URLS as $url){
    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, $url.'&no_cache');
    curl_setopt($ch, CURLOPT_HEADER, 0);

    // grab URL and pass it to the browser
    curl_exec($ch);
}
// close cURL resource, and free up system resources
curl_close($ch);

или

foreach ($URLS as $url){
     $ch = curl_init();
    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, $url.'&no_cache');
    curl_setopt($ch, CURLOPT_HEADER, 0);

    // grab URL and pass it to the browser
    curl_exec($ch);
            curl_close($ch);
}
// close cURL resource, and free up system resources

1 Ответ

1 голос
/ 04 апреля 2011

Во-первых, это требует меньших накладных расходов, поскольку вы создаете экземпляр объекта curl только один раз, но если в curl есть утечки, и вы выбираете большое количество URL-адресов, вы можете исчерпать память.

Обычно я вызываю новый объект curl только в том случае, если следующий URL для выборки имеет слишком много различий в настройках, чем старый curl. Проще начать с настройки по умолчанию и внести в нее изменения, чем пытаться «отменить» конфликтующие настройки из предыдущего запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...