for、while循环优化

在看GO语言时看到别人写了一段把数组先获取长度用变量保存长度,在去循环遍历的代码。
以前写的都是在for循环里面条件判断时在获取长度,想想这样性能能提高多少,就用java测试下下面是代码

package test;

public class Test1 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8};
        long sum1 = 0, sum2 = 0;
        //测试1万次
        for(int a=0; a<10000; ++a){
            long time1 = System.nanoTime();
            for(int j=0; j<10000; ++j){
                for(int i=0; i

结果:
1.sum1:1834534466, sum2:342085548,sum1/sum2:5.3627944142206205
2.sum1:1854752830, sum2:345797811,sum1/sum2:5.363691645809753
3.sum1:1855739585, sum2:346774010,sum1/sum2:5.351437914854115
4.sum1:1855739585, sum2:346774010,sum1/sum2:5.351437914854115
5.sum1:1850499523, sum2:345726700,sum1/sum2:5.352492367526141

这里为了让差别更明显故意循环很多次,实际应用中不会有这么明显差别,正明把for循环里面的判断条件获取长度的过程,写在for外部会提高性能。while同理

你可能感兴趣的:(for、while循环优化)