2017-07-25 57 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