撰写高效率的.NET程序

撰写高效率的.NET程序

影响.NET执行效率的因素

  1. 虚拟堆栈机器
  2. 垃圾回收器
  3. 即时编译器JIT
  4. 最优化机器编译器
  5. 正确使用.NET机制和.NET Freamwork

掌握虚拟堆栈机器

小心使用,不要滥用。不要在方法或函数中声明太多太大的局部变
量。不要多于64个局部变量。不要用1个大方法。

垃圾回收器

除非开发人员知道自己做什么,要尽量避免干扰垃圾回收器的工作,不要撰写太大的对象。

在多CPU上<configuration><runtime><gcConcurrent enabled="false"/></runtime></configuration>


即时编译器JIT

写类方法时避免大方法。


最优化机器编译器

使用内联展开可以有效地在使用许多小型函数应用程序中增加执行效率

如果方法有如下特性不会成为内联展开方法

  1. 虚方法
  2. 大于32个字节的IL方法
  3. 复杂控制流程的方法
  4. 使用try catch
  5. 拥有结构Structs参数或是声明结构区域变量的方法

foreach

有可能产生缓慢的执行程序代码。


string

string对象的内容是不可以改变的,如果做串联会造成许多临时字符串对象的创建和释放,很缓慢。要用StringBuilder。


Collection类

最好建立一个适合应用程序适用的体积大小,即不要一定用不带参数的形式。


引用型和值类型

值类型在堆栈上配置,免除动态建立和释放,也可以避免垃圾回收器过度的启动。


小心使用Reflection

Reflection很好也很昂贵,要避免在瓶颈或者经常执行的地方用反射。


建议

避免滥用XML,昂贵,缓慢。
避免滥用Exception。
只在需要才引入Assembly。
多线程中尽量用ThreadPool比Thread效率更好。
在多cpu机器中使用服务器端垃圾回收器,使用异步调用用以增加.NET程序反应时间。


 

 

转载于:https://www.cnblogs.com/leonardleonard/archive/2007/03/21/1928236.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值