我一直在C++程序中使用某些庫來連接和獲取不同的網站。主要是我用Chillkat和Curl。但是,最近我開始使用MSDN和Winsocket2庫的幫助編寫我自己的HTTP fetcher。C++中HTTP GET方法的速度
我編寫了我的軟件,打開一個SOCKET_STREAM類型的套接字和Ipv4, ,然後我建立與所需網站的連接,併發送帶有「Host:」和「Connection:close」頭的GET請求到服務器。 似乎一切正常,但是,性能不如我預期。捆綁的Chillkat庫仍然會比我的更好。儘管我儘可能地優化了我的內容。
我注意到,當我發送請求時,一些服務器需要更長的時間來響應。一旦他們做到了,他們立即發送所有的東西。那麼我怎樣才能做出一個頭部請求來啓動一個快速響應呢?速度對我的程序很重要。
我懷疑有一個標題請求速度碰撞,雖然你可以檢查Chillkat發送的頭文件以確保你沒有丟失任何東西。至於分塊,這是正常的;很多網站都這樣做,所以你必須在自己的圖書館處理。 – chrisaycock 2011-01-31 22:20:37
檢查改變套接字緩衝區是否會給你一個提升,也許你會浪費你的時間去閱讀往往很小的數據塊。有時最好等待更大的塊並立即傳遞,而不是閱讀很多次的小塊 – 2011-01-31 22:24:52
單個人編寫優化函數的機會大大超過了由數千名合併開發人員執行的優化,所有代碼審查和批評每個其他優化小到幾乎爲零。如果速度問題需要使用一個普遍使用並且知道速度的良好圖書館。 – 2011-01-31 22:30:57