webbench 源碼閱讀註釋筆記記錄

webbench 源碼閱讀筆記

webbench V 1.5 版本源碼閱讀註釋筆記, 在原來源碼的基礎上進行中文註釋, 提出本身的看法,記錄筆記git

##流程 從 main 函數入口開始github

  1. 解釋命令行參數
  2. 初始化結構體,變量等
  3. 組織 HTTP 請求數據包, build_request()
  4. 進行 HTTP 請求, 執行benchcore(), 更改全局 speed, fail, bytes 變量, 每一個子進程執行完就把信息寫入管道 mypipe[1]
  5. 回到父進程, 循環讀取管理的隊列 mypipe[0], 組織要展現的全局信息 speed, fail, bytes
  6. 打印全局信息

##架構web

P:          main() 
                |
                |
     ------------------------
     |          |           |
     |          |           |
     A          B           C (指定3個客戶端,生成3個子進程,進程執行 build_request()組織HTTP包, benchcore()進行HTTP請求,再回到主函數把請求的狀態信息寫入管道) 
     |          |           |
     |          |           |
 寫入管道     寫入管道     寫入管道 
     ------------------------ 
                |
                |
          讀取管道信息,呈現

##程序算法特色算法

根據 client 的數值循環生成子進程, for處理子進程邏輯,執行HTTP請求後,回到主函數把寫信寫進管道, 再統一作管道信息讀取呈現架構

細節方面就是要注意 進行 HTTP請求的時候, 請求的狀態檢查, goto邏輯從新請求等處理函數

源碼註釋的連接地址爲 https://github.com/halokid/webbench_note,水平有限,若有錯誤請見諒,留言指正,交流學習,多謝。學習

相關文章
相關標籤/搜索