C#代码性能技巧二(亲测)

来源:互联网 发布:sql serverr2安装教程 编辑:程序博客网 时间:2024/05/19 04:26
1.空字符串优先使用String.empty,而不是""
前者是单例模式,当多个空串时,显然前者更省内存空间
2.同类型集合,如,list<T>,arraylist间优先使用前者
前者是强类型,后者是object类型,极有可能会产生大量的拆箱装箱
3.dictionary<T,T> 的性能要高于hashtable
dic是线性不安全的,hashtable是线性安全的,安全性必然是性能的消耗换来的,
还有就是dic是强类型,hashtable内部是object,还是拆箱装箱的原因
4.优先使用 as 转换类型 而非 强类型转化
前者转换失败时,返回null,后者直接异常,异常以冒泡的形式传播出去,必然耗费很大的性能,
而且前者使程序更健壮,
5.程序model时,struct 性能要高于 class型的
struct值类型,性能 , 明显要高于class引用类型
6.变量初始化时,尽量赋给使用的值
不然的话,初始化时,会按照c#的规则初始化,无形中耗了一定的性能
7.c#中的不论是托管资源和非托管资源,使用完后,都尽量使用 using  Dispose   try/finally释放,托管资源也尽量不要等待clr的回收,
前提是确保释放不会产生副作用啊,不然,很可能会因为内存的问题而拖慢程序的性能
8.不要过度的使用type来反射,反射给我们带来 可以获取任何类的内部可见信息时,也是以牺牲性能为代价的,
应了那句古话,有所得必有所失
9.也尽量不要使用交互式(Interop)编程,也是上面同样的道理,

上面是一些个人总结,不对的地方请指正,凡事不能太过,编程的性能也是一样的,还要考虑扩展,复用等等,实际使用过程中并不一定按照性能最优来实施,

上一篇地址:http://blog.csdn.net/xuwei_xuwei/article/details/21541525

0 0
原创粉丝点击