2013-11-26 62 views
0

我使用AsyncTask將照片上傳到Amazon S3服務器。我發現AsyncTask一個接一個地等待,而不是默認並行運行。AsyncTask序列比並行更快

因此,將我的代碼更改爲使用executeOnExecutor(java.util.concurrent.Executor, Object[])並行運行。但是我發現它比默認的AsyncTask序列執行慢。

我可以知道這有什麼問題嗎?因爲我認爲並行必須更快。我錯了嗎 ?

+2

上傳速度以kbps爲單位怎麼樣?兩種情況都一樣嗎?多個連接並不總是更快。 – Kristopher

+0

我可以說同樣的速度!我注意到並行上傳在啓動時需要更多。哦!可能當他們共享連接時,它會變得連接速度慢,需要的時間比順序更多。你的意思是? – Megamind

+1

我給你舉個例子:當你在一個torrent客戶端中增加10個連接數時,下載速度會明顯下降。那是因爲很多bandwidtch用於管理這些連接並且不傳輸數據。 – Kristopher

回答

0

我的猜測是這是一個網絡問題。可能的原因有:

  • 連接開銷「吃」上傳bandwidtch(如果有很多這些)。
  • 當檢測到多個連接時,服務器策略可能會降低速度。這很可能。
+0

現在,我看到發生了什麼,@soulreaver感謝您的解釋。你能分享我如何更快地上傳圖像嗎? – Megamind

+1

你寫的比兩個(單個和多個)的conntection上傳都是相同的速度。在這種情況下,我會檢查上傳速度是否不受服務器限制。如果是的話,你無能爲力。 – Kristopher

+0

是的,你說得對,我應該考慮一下 – Megamind