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