Уменьшите использование процессора cURL - PullRequest
0 голосов
/ 25 ноября 2010

Я выполняю определенную задачу, которая включает в себя отправку 6 наборов по 8 запросов на каждого пользователя и всего около 2000 пользователей. Это набор запросов GET, используемых для отправки команд.

Чтобы ускорить отправку, я построил 4 многоручных скручивания, каждый из которых содержит 8 запросов, запускает их один за другим, а затем продолжает со следующим пользователем. Небольшая проблема в том, что он потребляет 99% моего процессора и только около 5 КБ в секунду при пропускной способности. Нет никаких утечек или чего-либо еще, но при отправке 96000 запросов это сильно отстает, занимая примерно 3 часа на моем двухъядерном AMD Phenom.

Есть ли какие-нибудь методы, которые я могу ускорить? Использование file_get_contents () вместо cURL оказывается на 50% медленнее. Но cURL использует только 5 кбит / с и расходует мой процессор.

1 Ответ

0 голосов
/ 25 ноября 2010

Вы пытались использовать fopen () для своих запросов вместо curl?Это также может быть причиной того, что вы отправляете запросы?Он не вернется, пока веб-сервер не завершит запрос.Нужны ли вам данные для представления пользователю, если нет, можете ли вы выполнять запросы в фоновом режиме?Реальный вопрос заключается в том, почему вы отправляете так много запросов, и было бы гораздо лучше объединить их в меньшее количество запросов.В этой настройке есть много переменных, которые могут влиять на скорость.

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