zoukankan      html  css  js  c++  java
  • 整理一些提高C#编程性能的技巧

    1、使用StringBuilder代替使用string 连接符 "+"

    说明:String类对象是不可变的(只读),一旦创建该对象,就不能修改该对象的值。

    对象String对象的重新赋值,本质上是重新创建了一个String对象并将新的值赋值给该对象。

    如果字符串存在较多次的拼接时候,最后使用StringBuilder类,需要引用命名空间 System.Text。

    该类不是创建新的对象,而是通过Append、Insert、Remove等方法对字符串直接进行操作,最后通过

    ToString方法返回操作结果。从而避免创建大量对象,造成资源浪费、性能降低。

    例如:

    //不要这样写

    String str="bei";

    str+="jing";

    str+="huan";

    str+="ying";

    str+="ni";

    //推荐这样写

    StringBuilder str=new StringBuilder();

    str.Append("bei");

    str.Append("jing");

    str.Append("huan");

    str.Append("ying");

    str.Append("ni");

    2、用foreach 代替 for 循环

    如果是可以使用foreach的时候,尽量用foreach,而不是 for。前者的效率比后者要高很多。

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

    4、避免使用ArrayList

    因为ArrayList使用的时候存在装箱、拆箱会造成性能的损失,可以用泛型来代替。

    5、如果是字符进行比较的时候可以采用String.Compare,它会忽略大小写进行比较,而不要使用UpperCase、Lowercase转换后进行比较。

    6、如果只是从xml对象中读取数据,可以用只读的XPathDocument代替XMLDocument,可以提高性能。

    7、C#捕获异常的时候,不要使用通用的System.Exception。可以根据程序逻辑考虑可能出现的异常进行控制。

    8、要避免在循环体内声明变量,如果可以的化,最好放在循环体外声明,在循环体内初始化。

    9、采用using和try/finaly来做资源清理

    10、不要使用异常(Exception)来控制程序的流程

    因为捕获异常对性能的损耗很大,最好不要用异常去控制程序的流程。

    11、使用值类型的ToString方法避免装箱操作。

    因为值类型到引用类型会造成性能的损耗,所以使用值类型的ToString方法可以避免装箱造成的性能损耗。

    12、避免滥用反射,反射也是比较浪费性能的操作

    当使用反射来调用类型或者触发方法,或者访问一个字段或者属性是,CLR需要做很多工作:校验参数、检查权限、

    所以非常耗时,因此这样的情况下要尽量避免反射的使用。

    欢迎关注我的公众号,定期推送文章:原文

  • 相关阅读:
    【卷积】卷积的理解
    【cs231n】神经网络学习笔记3
    【cs231n】神经网络笔记笔记2
    【cs231n】神经网络学习笔记1
    【cs231n】卷积神经网络
    【cs231n】反向传播笔记
    【cs231n】最优化笔记
    【cs231n】图像分类笔记
    【cs231n】线性分类笔记
    关于struts中Ognl和iterator配合再次理解
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352796.html
Copyright © 2011-2022 走看看