寂寞部屋
- 关注互联网,关注生活
关注互联网,关注生活
2019年五月
« 4月    
 12345
6789101112
13141516171819
20212223242526
2728293031  
  • 日志总数:553 篇
  • 浏览总量:2,433,328 次
  • 运行天数:613 天
  • 建站时间:2017-9-14
  • 最后更新:2019-4-2

撰写高效率的.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程序反应时间。

本站原创文章,请勿复制转载
版权声明:除特别注明外,本站所有文章均为原创,未经许可请勿复制、转载
2008-01-14
2,348 views
标签: ,
暂无评论

发表评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。