全面测试嵌套多层For循环的性能和优化方案
2013-09-26 12:05
519 查看
[java] view plaincopy /** * 全面测试嵌套多层For循环的性能。 * * @author 老紫竹的家(laozizhu.com) * */ public class TestForLoop { public static void main(String[] args) { int small = 1; int middle = 1000; int large = 1000000; // 大循环在外面,小循环在里面,变量每次生成 long t = System.currentTimeMillis(); for (int i = 1; i <= large; i++) { for (int j = 1; j <= middle; j++) { for (int k = 1; k <= small; k++) { } } } System.out.println(System.currentTimeMillis() - t); // 大循环在外面,小循环在里面,变量统一生成 t = System.currentTimeMillis(); int i, j, k; for (i = 1; i <= large; i++) { for (j = 1; j <= middle; j++) { for (k = 1; k <= small; k++) { } } } System.out.println(System.currentTimeMillis() - t); // 小循环在外面,大循环在里面,变量每次生成 t = System.currentTimeMillis(); for (int kk = 1; kk <= small; kk++) { for (int jj = 1; jj <= middle; jj++) { for (int ii = 1; ii <= large; ii++) { } } } System.out.println(System.currentTimeMillis() - t); // 小循环在外面,大循环在里面,变量统一生成 t = System.currentTimeMillis(); int ii, jj, kk; for (kk = 1; kk <= small; kk++) { for (jj = 1; jj <= middle; jj++) { for (ii = 1; ii <= large; ii++) { } } } System.out.println(System.currentTimeMillis() - t); } }
测试运行结果
5625
3125
609
594
注意,不同机器结果肯定不同,且有可能是如下的结果
5641
3140
594
625
而我自己的却是
1494
5
2
2
测试结论:
1 将大的循环放到内测,小的循环放到外侧,确实能提高效率
2 变量的声明,原则上是能提高效率的(从第一个看,效果差距很大),但在循环次数少的时候,并不明显,有时反倒会影响效率。
相关文章推荐
- 全面测试嵌套多层For循环的性能和优化方案
- 【Java语言】嵌套For循环性能优化案例
- 【Java】嵌套For循环性能优化案例
- 【Java语言】嵌套For循环性能优化案例
- 嵌套For循环性能优化案例
- 全面测试JAVA各种循环的性能,for轻松胜出
- 【Java语言】嵌套For循环性能优化案例
- App的网络测试中性能优化方案
- Java性能优化之for循环
- 多层for循环的优化
- web前端性能意义、关注重点、测试方案、优化技巧
- 第六章——根据执行计划优化性能(1)——理解哈希、合并、嵌套循环连接策略
- web前端性能指标、测试方案、优化技巧
- JS--for循环的性能优化
- 第六章——根据执行计划优化性能(1)——理解哈希、合并、嵌套循环连接策略
- java中for循环性能的优化(一)
- 网站性能优化实践-for循环中的数据库操作
- 菜鸟要做架构师(二)——java性能优化之for循环
- 嵌套 for循环优化
- Java性能优化之for循环