关于提高.net应用程序效率的一些经验总结(转)
来源:互联网 发布:电脑捏人软件 编辑:程序博客网 时间:2024/04/29 15:44
通过自己对一些教程、书籍的学习,以及自己在实际开发中的一些体会总结如下,希望能对大家在撰写高效率.net应用程序方面有所帮助:
1,小心使用虚拟堆栈,不要滥用
不要在方法或者是函数中声明太多、太大的局部变量,比较明确的数目不要声明多余64个局部变量,无须实现太大的方法,尽量使用精小、多个实现的方法或者函数,这样可以产生较好的CLR程序代码,JIT也能够据此产生良好的本机执行代码。
2,关于string
string对象的内容不可改变的,如果使用 str="aaaa"+''bbb"等类似的方式来处理字符串,将会造成许多暂时字符串对象的建立和消灭,使得程序极为缓慢;应该采用StringBuilder类来处理类似的情况。
3,垃圾回收
一些书上在介绍垃圾回收的时候,可能会建议大家直接使用GC的垃圾收集方法,但是这样做往往是很危险的,有可能不自觉的执行了和垃圾回收器相反的行为;我们应该避免干扰垃圾回收器的工作,撰写体积比较小的对象;GC.Collect()可能会带来性能数百倍的损失。
4,关于集合Collection
在创建集合(ArrayList、Stack等)的时候最好在初始化的时候声明集合的大小(貌似在满足自己需要的集合的大小的最小素数比较好),定长的集合可以避免过多的复制所带来的性能损失;适当配置集合的大小可能带来很大的性能提升。
5,值类型和引用类型
我们知道值类型是存储在堆栈上的,而引用类型是存储在Heap上的;如果是对象比较小且不需要类特有的一些语义,那么采用值类型是更好的选择,可以带来更好的效率。
6,装箱和拆箱
装箱和拆箱是奢侈的指令,在程序中应该避免使用
7,关于反射
反射可以给我们带来很多方便,但是毕竟这是建立在昂贵的开销上的,所以大家在使用的时候应注意。
8,关于XML
应该避免滥用XML因为这是很昂贵、缓慢的东西。
9,不要滥用Exception
使用exception会在程序中产生Exception表格,这需要额外的内存,而且在Exception产生时也需要搜寻Exception表格中正确种类的Exception,这会让.net应用程序的执行速度缓慢下来;在使用的 使用应该使用明确的Exception比如ArgumentNullException而不是Exception。
10,关于Assembly
尽量值加载需要的Assembly因为这会带来很大的内存占用,自己深有体会,前段时间写的那么小的软件结果占用了几十MB的内存,应该及时卸载不需要的Assembly。
11,关于多线程
在使用多线程的时候,应尽量使用ThreadPool,它是托管的线程池比Thread类有更高的执行效率;同时在使用多线程的时候应该谨慎,使用不当很容易导致整个程序的崩溃
- 关于提高.net应用程序效率的一些经验总结(转)
- 关于提高.net应用程序效率的一些经验总结
- 关于提高程序效率的一些建议
- PHP提高编程效率的方法(经验总结)
- .net 的一些经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结(zz)
- 【关于ASP.NET在IIS一些问题的经验总结】
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- 关于ASP.NET在IIS中一些问题的经验总结
- 关于ASP.NET在IIS一些问题的经验总结
- JS正则表达式验证E-mail、手机、数字等
- 目前比较流行的一些设计模式文档
- wifi operations
- DAMAGE:after Normal block
- Apt和dpkg快速参考
- 关于提高.net应用程序效率的一些经验总结(转)
- 金庸小说中的绝世武功
- android网络类型 wap代理设置
- 无法显示XML页--名称以无效字符开头...'--iis处理资源时出此错的解决办法 - [转]
- 视频聊天的参考资料
- ADO CreateParameter 0xC0000005 错误原因及解决方法
- webconfig配置连接池
- 数据库
- Android中几种图像特效处理的集锦