2010-11-24 28 views
0

我正在做這個特定的任務,涉及每個用戶發送6組8個請求,並且總共約2000個用戶。這是一堆GET請求,用於發送命令。減少cURL處理器使用

爲了加快發送速度,我構建了4個捲曲多個句柄,每個句柄持有8個請求,一個接一個地發射它們,然後繼續與下一個用戶通話。它吃了99%的CPU,並且在我的帶寬上每秒只吃5kb。沒有任何泄漏或任何東西,但是當發送96000個請求時,它會拖延大量時間,在我的雙核心AMD Phenom上花費大約3個小時。

有沒有什麼方法可以加快速度?使用file_get_contents()而不是cURL的速度會降低50%。但cURL只使用5 kbps,並將我的CPU吃掉。

回答

0

您是否嘗試過使用fopen()作爲您的請求而不是捲曲?這也可能會加載你發送請求的地方?直到Web服務器完成請求才會返回。你是否需要返回數據來呈現用戶,如果不是,你可以在後臺運行查詢嗎?真正的問題是你爲什麼發送這麼多請求,並且將它們合併成更少的請求會好得多。這個設置中有很多變量可以提高速度。