1)避免使用ArrayList,因为对象要转化为System.Object加入ArrayList,取出时又要转化为想要的类型,设计到大量的装箱拆箱过程,推荐使用自定义集合取代ArrayList,.net还在System.Collection.Specialized命名空间下为string提供了一个强类型的集合类StringCollection
 
2)用Hashtable 取代其他字典类型,如:StringDictionary, NameValueCollection, HybridCollection。
 
3)经常为字符串声明常量来封装他们
   //避免
   MyObject obj = new MyObject();
   obj.Status = "ACTIVE"; 
   //推荐    
   const string C_STATUS = "ACTIVE";
   MyObject obj = new MyObject();
   obj.Status = C_STATUS;

4)使用String.Compare取代将两个字符串转化为uppercase或lowercase再来比较他们
   const string C_VALUE = "COMPARE";
   if (String.Compare(sVariable, C_VALUE, true) == 0)
   {
         Console.Write("SAME");
   }
 
5)避免使用+操作符来连接字符串,而使用StringBuilder来连接
   //避免
   String sXML = "<parent>";
   sXML += "<child>";
   sXML += "Data";
   sXML += "</child>";
   sXML += "</parent>";              //推荐
   StringBuilder sbXML = new StringBuilder();
   sbXML.Append("<parent>");
   sbXML.Append("<child>");
   sbXML.Append("Data");
   sbXML.Append("</child>");
   sbXML.Append("</parent>");

6)对于只读xml文档,用XPathDocument取代XMLDocumentt
   //避免
   XmlDocument xmld = new XmlDocument();
   xmld.LoadXml(sXML);
   txtName.Text = xmld.SelectSingleNode("/packet/child").InnerText;
   //推荐
   XPathDocument xmldContext = new XPathDocument(new StringReader(oContext.Value));
   XPathNavigator xnav = xmldContext.CreateNavigator();
   XPathNodeIterator xpNodeIter = xnav.Select("packet/child");
   iCount = xpNodeIter.Count;
   xpNodeIter = xnav.SelectDescendants(XPathNodeType.Element, false); 
   while(xpNodeIter.MoveNext())
   {
         sCurrValues += xpNodeIter.Current.Value+"~"; 
   }

7)避免在循环体类声明并初始化对象,而应该在循环体外声明,在循环体类初始化!
   //避免
   for(int i=0; i<10; i++)
   {
       SomeClass objSC = new SomeClass();
   }
   //推荐
   SomeClass objSC = null;
   for(int i=0; i<10; i++)
   {
       objSC = new SomeClass();
   }
 
下面是专门针对Web程序性能的设计方针
1) Viewstate 会动态增加页面体积,所以要小心的使用控件的Viewstate 属性。
2) 尽可能使用ajax。
3) 使用server.tranfer取代response.redirect。
4) 尽可能使用repeater和datalist取代datagrid。
5) 尽量避免Throw来控制程序流程,因为Throw会消耗大量资源。
6) 避免过度使用异常处理程序块,只在你无法控制的地方做异常处理。
7) 大量dataset很昂贵,尽量一次取得最多的数据,然后销毁dataset
8) 使用缓存
9) 使用合适的认证机制
10)使用Finally方法释放资源
11)网站发布后将Debug和trace设为false。

提高.NET性能的最佳实践相关推荐

  1. 提高 Web 站点性能的最佳实践

    原文地址:http://developer.yahoo.com/performance/rules.html 本文在尊重原文基础上,尽量翻译得通俗易懂一些. 本文内容 提高 Web 站点性能的最佳实践 ...

  2. 前端性能优化最佳实践(转)

    转载请注明: 转载自WEB前端开发(www.css119.com)-关注常见的WEB前端开发问题.最新的WEB前端开发技术(webApp开发.移动网站开发).最好的WEB前端开发工具和最全的WEB前端 ...

  3. 前端性能优化最佳实践

    本文主要考量客户端性能.服务器端和网络性能,内容框架来自 Yahoo Developer Network,包含 7 个类别共 35 条前端性能优化最佳实践,在此基础上补充了一些相关或者更符合主流技术的 ...

  4. Android应用性能优化最佳实践.

    移动开发 Android应用性能优化最佳实践 罗彧成 著 图书在版编目(CIP)数据 Android应用性能优化最佳实践 / 罗彧成著. -北京:机械工业出版社,2017.1 (移动开发) ISBN ...

  5. eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析...

    Guide: eBCC性能分析最佳实践(0) - 开启性能分析新篇章 eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析 eBCC性能分析最佳实践(2) - ...

  6. 提升Web应用程序性能的最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 导读:作为开发人员,Web页面加载或刷新的速度对其网站至关重要.在浏览器中调整性能问题比在Java应用程 序中更难.开发人员在 ...

  7. 高性能网站建设进阶指南:Web开发者性能优化最佳实践 pdf扫描版

    高性能网站建设进阶指南:Web开发者性能优化最佳实践是<高性能网站建设指南>姊妹篇.作者Steve Souders是Google Web性能布道者和Yahoo!前首席性能工程师.在本书中, ...

  8. 何崚谈阿里巴巴前端性能优化最佳实践

    转载:http://www.infoq.com/cn/interviews/hl-alibaba-front-end-performance-optimization 大家好,我现在在阿里巴巴园区采访 ...

  9. ASP.NET Core 性能优化最佳实践

    本文提供了 ASP.NET Core 的性能最佳实践指南. 译文原文地址:https://docs.microsoft.com/en-us/aspnet/core/performance/perfor ...

最新文章

  1. GitHub 的微服务架构设计与实践
  2. 你管这破玩意叫 RDB
  3. makefile 常用函数
  4. 参数估计:最大似然、贝叶斯与最大后验
  5. win8.1 php mysql,win8.1(64位) apache2.4.3+php5.6.3+mysql5.6安装
  6. mysql2017windows安装_mysql的windows安装
  7. ZooKeeper入门指南
  8. linux 设置pip 镜像 Pip Warning:–trusted-host 问题解决方案
  9. JSP中EL表达式和JSTL标签库的使用
  10. 【免费】Discuz素材资源交易论坛整站源码/带数据整站源码打包
  11. spyder pyecharts不显示_飞利浦292E2E评测丨宽屏显示器中的多面手
  12. 刚体转动的惯性张量和转动惯量的区别和联系
  13. 舞蹈模特欣欣(六)棚拍私房 大家看看像小龙女(李若彤)吗?
  14. 关于ASP木马提升权限
  15. PDF怎么编辑修改内容的免费方法
  16. 喜讯:世界首款阿兹海默老年痴呆症治疗药将上市
  17. 智能晾衣架(二)--功能实现
  18. VQA相关概念简单整理
  19. Photoshop CEP扩展倒角插件
  20. 华南x79主板u盘装系统教程_英特尔X79主板怎么设置u盘启动

热门文章

  1. win下修改mysql默认的字符集以防止乱码出现
  2. 浅谈PHP在各系统平台下的换行符
  3. 基于SCVMM对虚拟化服务器与虚拟机管理权限分配用户角色
  4. 升腾联手VMware 发布首款本土化桌面虚拟化
  5. java版DVD影碟片出租赁系统C/S模式 java电影购票系统课程设计
  6. Collection中的基本方法
  7. 查阅文献时向原作者发邮件要文献的简单模板
  8. hdu 1257最少拦截系统 动态规划
  9. K8s之ControllerRateLimiter简单理解
  10. Java(21)_ ^、|、运算符