【发布时间】:2015-09-09 12:32:06
【问题描述】:
我在我的应用程序中通过 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 在 400 毫秒内执行,但它从中检索数据的方法在 20 毫秒内执行。
怎么了?
【问题讨论】: