Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php cURL性能比方法执行慢得多_Php_Curl - Fatal编程技术网

Php cURL性能比方法执行慢得多

Php cURL性能比方法执行慢得多,php,curl,Php,Curl,我在我的应用程序中通过cURL调用了另一个应用程序的api,代码如下所示: $target = 'api/someMethod'; $url = self :: buildUrl($target); $paramString = self :: buildParamString(array( 'request' => $request, 'partner' => $_SESSION['DataPartner'],

我在我的应用程序中通过cURL调用了另一个应用程序的api,代码如下所示:

$target = 'api/someMethod';

$url = self :: buildUrl($target);
    $paramString = self :: buildParamString(array(
            'request' => $request,
            'partner' => $_SESSION['DataPartner'],
            'token' => $_SESSION['DataToken']
    ));

    $t = microtime(true);
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => $paramString,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_TIMEOUT => 600,
        CURLOPT_CONNECTTIMEOUT => 60,
    ));
    $curlResponse = curl_exec($curl);
    Log :: i(microtime(true) - $t); // ~400ms
这个cURL调用大约需要400毫秒。问题在于它从中检索数据的方法:

public function someMethod() {
   $t = microtime(true);
   // create the response, some SQL, etc
   Log :: i(microtime(true) - $t); // ~20ms
   echo $response;
}
运行大约需要20毫秒。所以cURL在400ms内执行,但它从中检索数据的方法在20ms内执行


怎么了?

嗯,curl的执行总是比单独的方法慢,至少多1毫秒;。我看不出你的情况有多慢。如果你把请求时间、网络、服务器响应以及所有这些加起来,那么在一个非常强大的服务器环境中,你至少可以得到200ms的时间,所以,我认为这400ms是正常的