为什么time_starttransfer大于total_time?

问题描述 投票:0回答:0

Curl 测量的时间看起来令人困惑 - 我总是看到 APPCONNECT_TIME 甚至高于 TOTAL_TIME。我还希望 APPCONNECT_TIME 小于 STARTTRANSFER_TIME,因为后者测量接收到第一个字节的时间,而 APPCONNECT_TIME 在 TCP/TLS 握手操作之前。

c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEFUNCTION, lambda x: None)
c.setopt(c.WRITEFUNCTION, buffer.write)
c.setopt(c.HEADERFUNCTION, header_function)
c.perform()

total_time = round(c.getinfo(pycurl.TOTAL_TIME) * 1000, 1)
namelookup_time = round(c.getinfo(pycurl.NAMELOOKUP_TIME) * 1000, 1)
connect_time = round(c.getinfo(pycurl.CONNECT_TIME) * 1000, 1)
appconnect_time = round(c.getinfo(pycurl.APPCONNECT_TIME) * 1000, 1)
pretransfer_time = round(c.getinfo(pycurl.PRETRANSFER_TIME) * 1000, 1)
starttransfer_time = round(c.getinfo(pycurl.STARTTRANSFER_TIME) * 1000, 1)
download_speed = round(c.getinfo(pycurl.SPEED_DOWNLOAD) /1000, 1) #Kbps
remote_ip = c.getinfo(pycurl.PRIMARY_IP)
headers_size = c.getinfo(pycurl.HEADER_SIZE)
size_download = c.getinfo(pycurl.SIZE_DOWNLOAD)

results.append([request_nr, total_time, namelookup_time, connect_time, appconnect_time, pretransfer_time, starttransfer_time, download_speed, remote_ip,
                headers_size, size_download])

c.close()

print(tabulate(
    results,
    tablefmt='grid',
    headers=["Request Nr", "Download time", "namelookup_time", "Connect (TCP)", "Appconnect (TCP + SSL)", "Pretransfer", "Start Transfer", "User speed", "Remote IP",
             "Headers Size", "Download Size"]
    )
)
+--------------+-----------------+-------------------+-----------------+--------------------------+---------------+------------------+--------------+--------------+----------------+-----------------+
|   Request Nr |   Download time |   namelookup_time |   Connect (TCP) |   Appconnect (TCP + SSL) |   Pretransfer |   Start Transfer |   User speed | Remote IP    |   Headers Size |   Download Size |
+==============+=================+===================+=================+==========================+===============+==================+==============+==============+================+=================+
|            0 |             367 |              26.7 |           230.1 |                    505.9 |         275.9 |            366.8 |         14.2 | 54.230.96.25 |           1160 |            5226 |
+--------------+-----------------+-------------------+-----------------+--------------------------+---------------+------------------+--------------+--------------+----------------+-----------------+
curl pycurl
© www.soinside.com 2019 - 2024. All rights reserved.