【问题标题】:cURL performance much slower than method executioncURL 性能比方法执行慢得多
【发布时间】: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 毫秒内执行。

怎么了?

【问题讨论】:

    标签: php curl


    【解决方案1】:

    好吧,curl 的执行总是比单独的方法慢,至少多 1 毫秒;)。在您的情况下,我没有看到那么缓慢的差异。如果您将请求时间、网络、服务器响应以及所有这些相加,那么在非常强大的设置服务器环境中,您至少需要 200 毫秒,所以,我认为这 400 毫秒是正常的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-12
      • 2011-09-27
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 2012-07-03
      • 2011-04-29
      相关资源
      最近更新 更多