影响.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程序反应时间。