2012-12-06 35 views
3

我目前正在使用Apache HTTP Client並運行多線程解決方案,目前我正在爲每個我執行的httppost生成一個新線程。有什麼辦法讓這個執行更快嗎?我不需要對返回的內容做任何事情,我只需要發送我的請求。在Java中發送40個(ish)HTTP請求的最快方式是什麼?

我在步驟2.9中主要使用了代碼http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e639

+0

你是否需要頻繁地做這個或者只做一次? – Bohemian

+0

爲什麼不使用jmeter之類的工具? –

+0

每次執行只需運行一次。我會看看Jmeter! – jdenny

回答

5

假設你將需要這個很長一段時間運行,你可以節省一些執行時間,如果你預先創建線程,所以你不必產卵他們爲每個請求。性能增益會很小,但仍然比沒有好。看看Java Executors

此外,請確保就Apache HTTP客戶端使用情況而言,確保您不會創建不需要的對象。例如,如果您事先知道發送請求的位置,則可能需要保留一個HTTP連接池,而不是每次需要發送請求時建立連接。

+0

增加了一些關於Apache HTTP客戶端使用和連接池的更多提示。 – Isaac

1

我會考慮使用異步IO(NIO)和剛燒製單個線程的40個要求,這樣你就不必創建40個線程的開銷。

相關問題