PHP7.0.11を使用すると、コマンドラインから要求を実行しているときやPHP5.6.24で実行したときよりもcURLがかなり遅くなります。私は、次のコード使用して、それをテストしています:PHP5とPHP7のCLIインタプリタ両方でcURLはPHP 7では非常に遅いですが、PHP 5ではありません。
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://i.imgur.com/H1zC601.gif");
curl_setopt($curl, CURLOPT_HTTPGET, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
var_dump(curl_getinfo($curl));
を、そしてPHP7を実行しているとき、私は
array(26) {
["url"]=>
string(31) "https://i.imgur.com/H1zC601.gif"
["content_type"]=>
string(9) "image/gif"
["http_code"]=>
int(200)
["header_size"]=>
int(609)
["request_size"]=>
int(61)
["filetime"]=>
int(-1)
["ssl_verify_result"]=>
int(0)
["redirect_count"]=>
int(0)
["total_time"]=>
float(16.875167)
["namelookup_time"]=>
float(0.252648)
["connect_time"]=>
float(0.260626)
["pretransfer_time"]=>
float(0.280489)
["size_upload"]=>
float(0)
["size_download"]=>
float(34327108)
["speed_download"]=>
float(2034178)
["speed_upload"]=>
float(0)
["download_content_length"]=>
float(34327108)
["upload_content_length"]=>
float(-1)
["starttransfer_time"]=>
float(0.288715)
["redirect_time"]=>
float(0)
["redirect_url"]=>
string(0) ""
["primary_ip"]=>
string(15) "151.101.124.193"
["certinfo"]=>
array(0) {
}
["primary_port"]=>
int(443)
["local_ip"]=>
string(14) "my IP"
["local_port"]=>
int(55559)
}
を得る一方でPHP5に私は
array(26) {
["url"]=>
string(31) "https://i.imgur.com/H1zC601.gif"
["content_type"]=>
string(9) "image/gif"
["http_code"]=>
int(200)
["header_size"]=>
int(597)
["request_size"]=>
int(204)
["filetime"]=>
int(-1)
["ssl_verify_result"]=>
int(0)
["redirect_count"]=>
int(0)
["total_time"]=>
float(1.260002)
["namelookup_time"]=>
float(0.060424)
["connect_time"]=>
float(0.068474)
["pretransfer_time"]=>
float(0.089705)
["size_upload"]=>
float(0)
["size_download"]=>
float(34327108)
["speed_download"]=>
float(27243693)
["speed_upload"]=>
float(0)
["download_content_length"]=>
float(34327108)
["upload_content_length"]=>
float(-1)
["starttransfer_time"]=>
float(0.098354)
["redirect_time"]=>
float(0)
["redirect_url"]=>
string(0) ""
["primary_ip"]=>
string(15) "151.101.124.193"
["certinfo"]=>
array(0) {
}
["primary_port"]=>
int(443)
["local_ip"]=>
string(14) "my IP"
["local_port"]=>
int(44555)
}
を取得します
重要な部分はtotal_timeで、PHP 5では1.3秒、PHP 7では16.9秒です。
タイムアウトが要求に設定されている場合、受け取ったバイト数はタイムアウトに比例します。データが非常にゆっくりと転送されています。何も妨げられずに何かが転送されないようにしてから、行く。
サーバーでDebianが実行されているため、Fedoraローカルマシンで問題を再現できないようです。
これは同じサーバーですか? – ceejayoz
@ceejayozはい、すべてのテスト(PHP7、PHP5およびコマンドラインカール(私は正確な数値はありませんが、PHP5とほぼ同じ速度です))は同じサーバー上で実行されました。 – JackW
これは仮想マシンで実行していますか? – Sherif