枪口getTransferTime()究竟能测量什么?

时间:2018-08-23 18:06:59

标签: php guzzle

Guzzle支持根据请求通过getTransferTime()返回“传输时间”。 documentation间接提到“ [请求]数据中包含的是发送请求所花费的总时间。”我假设这就是“传输时间”的含义,因为没有其他定义。

现在,这是否真的表明接收响应所花费的时间?为什么有人要衡量发送请求所花费的时间?那有什么意思?请求中是否真的有大量准备工作?

1 个答案:

答案 0 :(得分:0)

例如,您可以在\GuzzleHttp\Handler\CurlFactory中看到

private static function invokeStats(EasyHandle $easy)
{
    $curlStats = curl_getinfo($easy->handle);
    $stats = new TransferStats(
        $easy->request,
        $easy->response,
        $curlStats['total_time'],
        $easy->errno,
        $curlStats
    );
    call_user_func($easy->options['on_stats'], $stats);
}

它对应于卷曲的total_time,描述为:

  

time_total完整操作持续的总时间(以秒为单位)。

这就是整个过程:发送请求,等待响应,获取响应。

\GuzzleHttp\Handler\StreamHandler中,您可以看到计时器在发送请求之前已启动,并在收到响应后停止。