2017-07-25 56 views
-7

的性能有什麼辦法來增加以下for循環的性能:增加該代碼

for(String s : listA){ 
    for(String s1 : listB){ 
     for(String s2 : listC){ 
      //API call 
     } 
    } 
} 

我做的最內層循環API調用。每次它必須調用API並導致性能問題。 有沒有一種簡單的方法,我可以實現這個沒有使用任何庫的性能問題?

+0

都是三個相同大小的列表嗎? – Ryan

+1

什麼時候應該調用API?你的問題沒有描述預期的行爲 –

+2

這調用* api *'listA.size()* listB.size()* listC.size()'次。我們該如何改進? – OldCurmudgeon

回答

1

而不是在循環中調用API,而是嘗試將必要API調用的詳細信息添加到queue。然後您可以使用多個線程來處理隊列。

顯然總共需要花費相同的時間,但是循環應該儘早完成。請記住,循環完成不再意味着API調用已完成。

+1

我已經推薦使用Executors了。除了你的回答之外,還要提到它。 – Fildor

+0

@OldCurmudgeon我從來沒有實現過一個隊列。您可以請分享一個鏈接或示例代碼,我們該如何做到這一點? – SRM

+0

@Fildor感謝您的建議:)請你提供一個關於如何實現這個請求的例子嗎? – SRM