使用curl命令分析請求的耗時情況


 

1、測試過程
curl 'https://xx.cnblogs.com/semanticAnalysis/api2?' -d 'app_id=2882303761517406029&token=5651740635029&timestamp=1493188096125&queries=[{"query":"打開越野跑","confidence":0.8}]&device_id=robot_aaaUG6LExb9Fsc80taeUv&device={"ip":"192.168.1.1","network":"wifi"}&session={"is_new":true,"id":"","start_timestamp":1493188096125}&request_id=afaaaa&version=2.1' -o /dev/null -s -w '@curl-format.txt'
time_namelookup: 0.124
time_connect: 0.148
time_appconnect: 0.338
time_redirect: 0.000
time_pretransfer: 0.338
time_starttransfer: 0.382
----------
time_total: 0.382
  • -w :從文件中讀取要打印信息的格式
  • -o /dev/null :把響應的內容丟棄,因為我們這里並不關心它,只關心請求的耗時情況
  • -s :不要打印進度條

從這個輸出,我們可以算出各個步驟的時間:

  • DNS 查詢:124ms
  • TCP 連接時間:  pretransfter(148) - namelookup(124) = 24ms
  • 服務器處理時間:starttransfter(382) - pretransfer(338) = 44ms
  • 內容傳輸時間:  total(0.382) - starttransfer(0.382) = 0ms


2、curl-format.txt文件配置
    time_namelookup: %{time_namelookup}\n 
    time_connect: %{time_connect}\n  
    time_appconnect: %{time_appconnect}\n  
    time_redirect: %{time_redirect}\n  
    time_pretransfer: %{time_pretransfer}\n  
    time_starttransfer: %{time_starttransfer}\n  
    ----------\n
    time_total: %{time_total}\n

3、變量解釋
  • time_namelookup :DNS 域名解析的時候,就是把 https://zhihu.com 轉換成 ip 地址的過程
  • time_connect :TCP 連接建立的時間,就是三次握手的時間
  • time_appconnect :SSL/SSH 等上層協議建立連接的時間,比如 connect/handshake 的時間
  • time_redirect :從開始到最后一個請求事務的時間
  • time_pretransfer :從請求開始到響應開始傳輸的時間
  • time_starttransfer :從請求開始到第一個字節將要傳輸的時間
  • time_total :這次請求花費的全部時間








 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM