规范代码,提高程序性能

    拥有良好的编码风格,不仅写出来的代码条理清晰,而且也会增强程序的健壮性,同时,遵守一些编码的规范,会使得程序的性能有很大的提高。如下是一些可以提高程序性能的编码规范,供大家参考。

(1) 避免在循环体内创建对象:有些对象并不是在循环体内每次都改变状态,所以在循环体内创建对象会导致应创建对象和回收对象而导致的性能损失,应该把创建对象代码提到循环体的外部。

不规范的代码:

1  for  ( int  i  =   0 ; i  <  length; i ++ )
2  {
3    Person _person  =   new  Person();
4    ......
5  }
6 

 

 规范的代码:

1  Person _person  =   new  Person();
2  for  ( int  i  =   0 ; i  <  length; i ++ )
3  {
4    ......
5  }
6 

 

(2)      避免装箱和拆箱:把值类型对象转换为引用类型时会导致装箱操作,把引用类型转换回值类型的时候又导致拆箱的操作。一种典型的使用是ArrayListArrayListitemObject类型,如果实际应用过程中把值类型,例如int类型,作为ArayList的元素进行操作就会导致如上所述的性能问题。

不规范的代码:

 1  ArrayList list  =   new  ArrayList();
 2  for  ( int  i  =   0 ; i  <   100 ; i ++ )
 3  {
 4    list.Add(i);
 5  }
 6  ......
 7  for  ( int  j  =   0 ; j  <  list.Count; j ++ )
 8  {
 9     int  value  =  ( int )list[j];
10    ......
11  }

 

规范的代码

 1  List < int >  list  =   new  List < int > ();
 2  for  ( int  i  =   0 ; i  <   100 ; i ++ )
 3  {
 4    list.Add(i);
 5  }
 6  ......
 7  for  ( int  j  =   0 ; j  <  list.Count; j ++ )
 8  {
 9     int  value  =  list[j];
10    ......
11  }
12 

 

(3)      多个字符串连接(连接操作大于5)时候,应使用StringBuilder,使用+操作符会导致创建新的字符串。

不规范的代码:

1  string  str  =   " string " ;
2  for  ( int  i  =   0 ; i  <   100 ; i ++ )
3  {
4    str  +=  i.ToString();
5  }
6 

 

规范的代码:

1  StringBuilder strbd  =   new  StringBuilder( " string " );
2  for  ( int  i  =   0 ; i  <   100 ; i ++ )
3  {
4    strbd.Append(i);
5  }
6  string  str  =  strbd.ToString();
7 

 

(4)      is as关键字:一种典型的应用场景是判断某个对象是否为某种类型,如果是,则显式转换为这种类型。其实这样的操作导致CLR两次核实对象的类型,对性能造成了一定的影响。

不规范的代码:

1  if  (ds  is  DataSet)
2  {
3    DataSet _ds  =  (DataSet)ds;
4    ......
5  }
6 

 

规范的代码:

1  DataSet _ds  =  ds  as  DataSet;
2  if  (_ds  !=   null )
3  {
4    ......
5  }
6 

 

规范的代码不仅易于阅读和维护,有时候还可以增强程序的性能,以上一些例子就是不规范的代码导致的性能问题,这些性能问题有的时候并不是十分突出,但是我们写代码要时刻有这样的意识。如果性能问题点太多,对整体程序的影响也是非常大的。


作者:Dang Jian
出处:http://www.cnblogs.com/dangjian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
同时请关注我的独立博客-http://www.dang-jian.com

 

转载于:https://www.cnblogs.com/dangjian/archive/2009/12/13/1623056.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值