簡體   English   中英

cURL性能比方法執行慢得多

[英]cURL performance much slower than method execution

我通過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毫秒內執行。

怎么了?

好吧,curl的執行總是比單獨的方法慢,至少要多1 ms;)。 我認為您的情況差異不大。 如果將請求時間,網絡,服務器響應以及所有這些因素加起來,那么在一個非常強大的設置服務器環境中,至少需要200毫秒,因此,這400毫秒,我認為是正常的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM