1

cURLを使用して、自分のWebサイトとパートナーのWebサイト間でデータを転送しています。

要求は非常に長い(〜18秒)が、情報量は非常に少ない(〜207バイト)。

リクエストを生成するための私のコードは次のとおりです。

// Send the subscription           
$resource = curl_init($url);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, true);
curl_setopt($resource, CURLOPT_POST, count($postFields));
curl_setopt($resource, CURLOPT_POSTFIELDS, $postString);
$result = curl_exec($resource);

curlinfoデバッグの結果は次のとおりです。

17.418212 total_time : Total transaction time in seconds for last transfer
0.064612 namelookup_time : Time in seconds until name resolving was complete
0.437222 connect_time : Time in seconds it took to establish the connection
0.946509 pretransfer_time : Time in seconds from start until just before file transfer begins
17.418172 starttransfer_time : Time in seconds until the first byte is about to be transferred
0 redirect_count : Number of redirects
0 redirect_time : Time in seconds of all redirection steps before final transaction was started
207 size_upload : Total number of bytes uploaded
11 speed_upload : Average upload speed
130 size_download : Total number of bytes downloaded
7 speed_download : Average download speed 

curlinfoのドキュメント:http : //curl.haxx.se/libcurl/c/curl_easy_getinfo.htmlでは、size_uploadとspeed_uploadはそれぞれバイトとバイト/秒であると言われています。

10バイト/秒はそれほど速くありませんね。他のデバッグ情報はどこにありますか?また、この速度を向上させるために何ができますか?

追加情報:データを送信および受信する両方のサーバーの帯域幅が良好で、両方が同じ都市にあります

4

1 に答える 1

0

サーバー側のパフォーマンスの問題のようです。

curl_getinfo()によって報告される速度は、次のように計算されます。

bytesPerSecond = totalBytesReceived/totalTime

ここで、totalTimeはcurl_execの実行時間です。

サーバーの応答が遅れる場合(サーバーがビジー状態など)、最後の1ミリ秒で60バイトを取得するまで1分待つことができ、報告される速度は1秒あたり1バイトになります。サーバー間のネットワーク接続の速度は関係ありません。

于 2013-03-04T10:57:58.600 に答える