优化 .NET的性能

1)避免使用ArrayList。
     因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。.net 2.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。

2)使用HashTale代替其他字典集合类型(如StringDictionary,NameValueCollection,HybridCollection),存放少量数据的时候可以使用HashTable.

3)为字符串容器声明常量,不要直接把字符封装在双引号" "里面。
      //避免
      //
      MyObject obj = new MyObject();
      obj.Status = "ACTIVE";

//推荐
      const string C_STATUS = "ACTIVE";
      MyObject obj = new MyObject();
      obj.Status = C_STATUS;

4) 不要用UpperCase,Lowercase转换字符串进行比较,用String.Compare代替,它可以忽略大小写进行比较.
  
   例:
 
      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) If you are only reading from the XML object, avoid using XMLDocumentt, instead use XPathDocument, which is readonly and so improves performance.
如果只是从XML对象读取数据,用只读的XPathDocument代替XMLDocument,可以提高性能
      //避免
      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();
     
      .
      .
      .
      }

8) 捕获指定的异常,不要使用通用的System.Exception.

//避免
      try
      {
      <some logic>
      }
      catch(Exception exc)
      {
      <Error handling>
      }
     
      //推荐
      try
      {
      <some logic>
      }
      catch(System.NullReferenceException exc)
      {
      <Error handling>
      }
      catch(System.ArgumentOutOfRangeException exc)
      {
      <Error handling>
      }
      catch(System.InvalidCastException exc)
      {
      <Error handling>
      }

9) 使用Try...catch...finally时, 要在finally里释放占用的资源如连接,文件流等
不然在Catch到错误后占用的资源不能释放。
       
        try
      {
         ...
      }
      catch
        {...}
        finally
        {
          conntion.close()
        }    
10) 避免使用递归调用和嵌套循环,使用他们会严重影响性能,在不得不用的时候才使用。

11) 使用适当的Caching策略来提高性能

如何最大限度提高.NET的性能相关推荐

  1. 组织可以最大限度提高数据中心性能的五个步骤

      当很多组织列出未来一年影响技术发展的趋势和问题时,通常都会有些长远的考虑,例如可能设想几年之后甚至几十年之后的未来发展.而分析机构更是如此.例如,对于2019年,调研机构Gartner公司关注人工 ...

  2. 关于大小型项目如何最大限度提高WebAPi性能

    前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力 ...

  3. 怎么最大限度得提高电脑的性能

    提高电脑的性能的方法 一.取消解压缩功能 windows XP可以自己解开zip压缩文件,但你是不是更钟爱winzip.winRaR呢?那就把windows XP默认的解压缩功能取消吧!按下" ...

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

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

  5. 针对提高48V 配电性能的诸多思考!

    作者:Phil Davies  众所周知配电网络 (PDN) 是所有电源系统的主干部分,但随着系统电源需求的不断上升,传统 PDN 承受着提供足够性能的巨大压力. 对于功耗和热管理而言,主要有两种方法 ...

  6. 提高 48V 配电性能?听专家怎么说

    配电网络 (PDN) 是所有电源系统的主干部分.随着系统电源需求的不断上升,传统PDN 承受着提供足够性能的巨大压力.对于功耗和热管理而言,主要有两种方法可以改善PDN 对电源系统性能的影响.一是使用 ...

  7. 降低数值精度以提高深度学习性能

    降低数值精度以提高深度学习性能 Lowering Numerical Precision to Increase Deep Learning Performance 深度学习训练和推理将成为未来几十年 ...

  8. 如何用JNI技术提高Java的性能详解

    阻碍Java获得广泛应用的一个主要因素是Java程序的运行效率.Java是介于解释型和编译型之间的一种语言,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快一倍以上.Java具有平台 ...

  9. 提高ActiveMQ工作性能

    2019独角兽企业重金招聘Python工程师标准>>> 提高ActiveMQ工作性能 博客分类: MQ (接上文<架构设计:系统间通信(22)--提高ActiveMQ工作性能( ...

最新文章

  1. 25个强大的 jQuery 砌体网页设计作品
  2. Git使用汇总之git checkout -- <file>的真正用法
  3. Flex 容器基本概念
  4. 开发常用工具(提高开发效率)
  5. Tomcat部署(转)
  6. 【IntelliJ IDEA系列】IDEA编译方式介绍及编译器的设置和选择
  7. 运行caffe自带的两个简单例子
  8. springboot : Failed to decode downloaded font 和 OTS parsing error
  9. English trip -- VC(情景课)4 A Health
  10. Redis 数据类型及应用场景
  11. ACM数论【乘法逆元】
  12. LeetCode简单题目(#160 #167 #168 #169 #171)-5道(序列、数字)
  13. 20200708每日一句
  14. gunicorn: No module named 'fcntl'
  15. python实现模拟登录云课堂智慧职教并获取课程信息(1)
  16. 神经网络二分类输出概率,神经网络二分类预测
  17. 房屋租赁合同模板2020 免费下载
  18. apache 开启 网页压缩
  19. 硬盘服务器与硬盘阵列,磁盘阵列和硬盘的区别是什么
  20. Python 北京二手房成交数据分析过程

热门文章

  1. jnotify监控linux系统,jnotify linux使用记录
  2. 2018java二级考试大纲_2018年全国计算机二级java考试简答题练习二
  3. 用法与区别_指示代词this, that, these, those的区别和用法
  4. Postgresql相关数据库、表占用磁盘大小统计
  5. PCL基础3:点云程序运行时间计时
  6. PT100热电阻校准模块设计
  7. Opencv中的FaceRecognizer类
  8. Linux那些事儿 之 戏说USB(26)设备的生命线(九)
  9. 几种和边框相关的CSS样式修改
  10. 设置VSCode代码编辑器右侧的Minimap代码缩略图滚动条切换显示、隐藏的快捷键Alt+M