Подтвердить что ты не робот

Медленность

По какой-то причине мой локон звонит очень медленно. Вот код, который я использовал.

$postData = "test"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);

Выполнение этого кода занимает в среднем 250 мс для завершения. Однако, когда я просто открываю URL-адрес в браузере, firebug говорит, что он занимает около 80 мс.

Есть ли что-то, что я делаю неправильно? Или это накладные расходы, связанные с PHP Curl.

Это вызов

curl_exec

Это происходит постоянно.

UPDATE:

Итак, я понял, что после того, как я разместил это, если я установил параметр curl

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

Это значительно замедляет

curl_exec

Почтовые данные могут быть любыми, и это замедлит работу.

Даже если я установил

curl_setopt($ch, CURLOPT_POST, false);

Это медленно.

Я попытаюсь обойти это, просто добавив параметры в URI в виде строки запроса.

ВТОРОЕ ОБНОВЛЕНИЕ:

Подтверждено, что если я просто позвоню URI, используя GET и параметры передачи как строка запроса, это намного быстрее, чем использование POST и помещение параметров в тело.

4b9b3361

Ответ 1

CURL имеет некоторые проблемы с поиском DNS. Попробуйте использовать IP-адрес вместо имени домена.

Ответ 2

У Curl есть возможность точно сказать, сколько времени заняла каждая часть и где медлительность (поиск имени, подключение, время передачи). Используйте curl_getinfo (http://www.php.net/manual/en/function.curl-getinfo.php) после запуска curl_exec.

Если curl медленный, это, как правило, не код PHP, он почти всегда связан с сетью.

Ответ 3

попробуй это

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

Ответ 4

обычно это приемлемо, когда вы загружаете содержимое или отправляете на более медленный конец мира. curl call прямо пропорциональны скорости вашей сети и пропускной способности вашего веб-сервера

Ответ 5

Функции curl в php напрямую используют инструмент командной строки curl в системах * nix.

Поэтому он действительно зависит только от скорости сети, поскольку в целом сам завиток намного быстрее, чем веб-браузер, поскольку он (по умолчанию) не загружает никаких дополнительных данных, таких как включенные картинки, таблицы стилей и т.д. веб-сайта.

Возможно, вам не известно, что производительность сети сервера, на котором вы тестировали ваш php script, намного хуже, чем на вашем локальном компьютере, где вы тестировали браузер. Поэтому оба измерения на самом деле не сравнимы.