我目前正在使用Apache HTTP Client並運行多線程解決方案,目前我正在爲每個我執行的httppost生成一個新線程。有什麼辦法讓這個執行更快嗎?我不需要對返回的內容做任何事情,我只需要發送我的請求。在Java中發送40個(ish)HTTP請求的最快方式是什麼?
我在步驟2.9中主要使用了代碼http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e639。
我目前正在使用Apache HTTP Client並運行多線程解決方案,目前我正在爲每個我執行的httppost生成一個新線程。有什麼辦法讓這個執行更快嗎?我不需要對返回的內容做任何事情,我只需要發送我的請求。在Java中發送40個(ish)HTTP請求的最快方式是什麼?
我在步驟2.9中主要使用了代碼http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e639。
假設你將需要這個很長一段時間運行,你可以節省一些執行時間,如果你預先創建線程,所以你不必產卵他們爲每個請求。性能增益會很小,但仍然比沒有好。看看Java Executors。
此外,請確保就Apache HTTP客戶端使用情況而言,確保您不會創建不需要的對象。例如,如果您事先知道發送請求的位置,則可能需要保留一個HTTP連接池,而不是每次需要發送請求時建立連接。
增加了一些關於Apache HTTP客戶端使用和連接池的更多提示。 – Isaac
我會考慮使用異步IO(NIO)和剛燒製單個線程的40個要求,這樣你就不必創建40個線程的開銷。
你是否需要頻繁地做這個或者只做一次? – Bohemian
爲什麼不使用jmeter之類的工具? –
每次執行只需運行一次。我會看看Jmeter! – jdenny