将嵌套循环重新设计到方法中的Java性能

dim*_*mas 0 java performance nested-loops

有人问我这个问题,在阅读了一些大的东西后,我仍然无法弄清楚这两个设计中哪一个更快.

如果我在一个方法中有这种嵌套循环

public void someMethod(){
    for (a=0;a<10;a++){
     for (b=0;b<10;b++){
      for (c=0;c<10;c++){
       for (d=0;d<10;d++){
       }
      }
     }
    }
}
Run Code Online (Sandbox Code Playgroud)

我决定重新设计方法并将2个内部for循环放到另一个类似的方法中

public void someMethod(){
     for (a=0;a<10;a++){
         for (b=0;b<10;b++){
          2loopsMethod();
         }
        }
    }

public void 2loopsMethod(){
for (c=0;c<10;c++){
 for (d=0;d<10;d++){
 }
}
Run Code Online (Sandbox Code Playgroud)

}

我的问题是重新设计的方法是否会比原始代码更快,因为我将它放在另一个方法中或者它没有任何区别?

Bil*_*ard 8

它应该没有区别.您仍然有四个级别的嵌套循环,因此将部分工作委派给方法调用将不会更快.

(从技术上讲,方法调用的额外开销会使第二个示例稍微慢一点,但如果你的代码执行任何重要的操作,我会惊讶于你甚至可以测量差异.)