码迷,mamicode.com
首页 > 移动开发 > 详细

android代码优化技术记录

时间:2015-01-29 21:02:35      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

1、length、length()、size的优化

举例:

int array_one[] = {1,2,3,4,5,6,7,8,9,10};
int array_two[] = {1,2,3,4,5,6,7,8,9,10,11..100};
for(int i=0;i<array_one.length;i++)
{
      for(int k=0;k<array_two.length;k++)  
      {
            doSth();    
       }
}

上述代码,系统需要对每次的for循环进行数组长度的计算,系统开销自然加大,我们可以这样:

 

int array_one[] = {1,2,3,4,5,6,7,8,9,10};
int array_two[] = {1,2,3,4,5,6,7,8,9,10,11..100};

int length_array_one = array_one.length;
int length_array_two= array_two.length;

for(int i=0;i<length_array_one;i++)
{
      for(int k=0;k<length_array_two;k++)  
      {
            doSth();    
       }
}

同理在计算jsonArray或者其他数组的时候,就可以通过上述方式进行优化

 

2、for、while的优化

 

int array[] = {1,2,3,4..100};
int length_array = array.length;

for(int i=0;i<length_array;i++)//假设我们寻找array中元素等于20的元素
{
    
     if(i == 20)    
    {
        doSth();  
      }
}

如果你已经在循环中,完成了指定的业务,这个时候没有其他业务的话,还继续进行for循环,这样时间成本就增大了,我们可以这样优化:

int array[] = {1,2,3,4..100};
int length_array = array.length;

for(int i=0;i<length_array;i++)//假设我们寻找array中元素等于20的元素
{
    
     if(i == 20)    
    {
        doSth();  
        break;  
      }
}

在适当的时候从循环中跳出来。同理如果是while循环的话,就把while 的循环条件调整为false,然后退出来

 

3、变量生命周期的优化

int array[] = {1,2,3,4..100};
int length_array = array.length;

for(int i=0;i<length_array;i++)
{
   String str[] = new string[1000];
   doSth(str);   //str只是作为参数使用,不对其进行修改
}

看上述代码,每次循环都有新建一个数组,系统的空间使用成本成本增加我们可以这样:

int array[] = {1,2,3,4..100};
int length_array = array.length;

String str[] = new string[1000];

for(int i=0;i<length_array;i++)
{
   doSth(str);   //str只是作为参数使用,不对其进行修改
}

这样的调整,只需要新建一次,就有效的缩小了空间成本

 

android代码优化技术记录

标签:

原文地址:http://www.cnblogs.com/kunyashaw/p/4260745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!