前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 优雅代码for循环 之性能调优

java 优雅代码for循环 之性能调优

作者头像
gfu
发布2019-08-28 14:36:06
1.6K0
发布2019-08-28 14:36:06
举报
文章被收录于专栏:gfugfu

大家在工作中,用到最多的就是for循环了,但是你知道如何写for循环可以提高系统的性能呢? 我从以下几个方面对如何写for循环给大家几个事例,希望可以帮到你们

原始代码

优化过的代码

对比结果

  • 在循环中,循环条件会被反复计算,如果不使用复杂表达式,而是使循环条件不变的话,程序将会运行的更快,所以在循环中应该避免使用复杂的表达式
代码语言:javascript
复制
#原始代码
public void optimalizeFor() {
   List list = new ArrayList<>();
   for (int i = 0; i < list.size(); i++) { 
      }        
}

#调优写法
public void optimalizeFor() {
   List list = new ArrayList<>();
     for (int i = 0, len = list.size(); i < len; i++) {
       }
      }

优化前用时:47871
优化后用时:566
  • 从结果可以看出来所用时间的差异非常大,这个就像拿大文件和小文件一样的道理
代码语言:javascript
复制
#原始代码
                for (int i = 0; i < 10; i++) {
                    for (int j = 0; j < 100000; j++) {
                    }
                }

#调优写法
                for (int i = 0; i < 100000; i++) {
                    for (int j = 0; j < 10; j++) {
                    }
                }

                优化前用时:7541608
                优化后用时:4316
  • 还是像之前说到的,避免在循环中重复的计算发生
代码语言:javascript
复制
#原始代码
                int a = 10, b = 11;
                for (int i = 0; i < 10; i++) {
                    i = i * a * b;
                }

#调优写法
                int c = a * b;
                for (int i = 0; i < 10; i++) {
                    i = i * c;
                }

                优化前用时:48664
                优化后用时:651
  • 每次抓捕异常时非常耗时的,应该放在循环外一次性抓取,而不是应该放在循环内去每循环一次都抓取
代码语言:javascript
复制
#原始代码
                for (int i = 0; i < 10; i++) {
                    try {
 
                    } catch (Exception e) {
 
                    }
                }
#调优写法
                try {
                    for (int i = 0; i < 10; i++) {
                    }
                } catch (Exception e) {
 
                }

                优化前用时:48664
                优化后用时:651
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档