整理一些提高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需要做很多工作:校验参数、检查权限、
所以非常耗时,因此这样的情况下要尽量避免反射的使用。
欢迎关注我的公众号,定期推送文章:原文
整理一些提高C#编程性能的技巧相关推荐
- 通过对虚拟磁盘进行碎片整理来提高VMware VM性能
Have you noticed your VMware virtual machines sees like they're sluggish and slow to respond? Here' ...
- 提高Python编程的效率技巧你知道哪些?收藏必备系列,阿里表哥推荐!Python高效编程技巧
Python高效编程技巧 工作中经常要处理各种各样的数据,遇到项目赶进度的时候自己写函数容易浪费时间. Python 中有很多内置函数帮你提高工作效率! 一:在列表,字典中根据条件筛选数据 1.假设有 ...
- 22个提高ASP性能的技巧(1-12)(转)
介绍 对于ASP程序来说,性能非常重要:必须在最初设计程序时就要考虑到性能,否则以后恐怕就要因为性能问题而重写代码.怎样才能使ASP程序性能达到最大呢?本文就将介绍一些提高ASP程序性能的技巧. 技巧 ...
- asp.net性能的技巧
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提 供了连接池 ...
- java性能瓶颈分析_Java性能优化技巧整理,做一个深度的程序员
原标题:Java性能优化技巧整理,做一个深度的程序员 在我们身边是一大批的程序员,层次不一,但是放眼观,我们很容易就可以看到那些是业务型程序员,那些是有层次的程序员.注重细节,注重性能,做一个有深度的 ...
- 最近整理关于SQL Server2005性能优化技巧
数据库性能优化涉及到很多方面,在数据库开发时可以通过一些基本的优化技巧提高数据库的性能: 1.原则上为创建的每个表都建立一个主键,主键唯一标识某一行记录,用于强制表的实体完整性.SQL Server ...
- 机器学习速成课程 | 练习 | Google Development——编程练习:提高神经网络的性能
提高神经网络性能 学习目标:通过将特征标准化并应用各种优化算法来提高神经网络的性能 注意:本练习中介绍的优化方法并非专门针对神经网络:这些方法可有效改进大多数类型的模型. 设置 首先,我们将加载数据. ...
- Java性能优化技巧
Java性能优化技巧 参考了些书籍,网络资源整理出来,适合于大多数Java应用 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序 ...
- 提高机器学习模型性能的五个关键方法
提高机器学习模型性能的五个关键方法 1. 数据预处理 2. 特征工程 3. 机器学习算法 4. 模型集成与融合 5. 数据增强 以下是各个方面的具体分析和方法: [ 说明:1.这里主要是各个关键方法的 ...
最新文章
- 在对话框中应用CScrollView显示图像
- LUOGU P4195 Spoj3105 Mod
- 抽屉效果_宜家靠边,好用不贵的全格收纳抽屉使用感受
- 小师妹学JVM之:JIT中的PrintCompilation
- x86已安装该产品 剑灵vcredist_MySQL Server v5.7正式版(附安装和配置数据库教程)
- 最长回文子串的不同解法
- 创造型模式——单例模式
- 《数据库技术原理与应用教程(第2版)》——第3章 数据管理中的数据模型 3.1 数据模型的基本概念...
- asp 检查黑名单_黑名单验证的突破
- PHP-redis中文帮助手册_set相关
- 韩顺平Java自学笔记 集合
- 详解DHT11温湿度传感器的原理及驱动程序
- 每次刷新页面时总会先闪一下空白再出现背景图片的解决
- 高数 | 两个重要极限 经典错误 什么情况下求极限可以直接带入
- 绘制业务流程图—入门篇
- python爬虫---如何爬取京东商品评论并进行数据存储
- twitter_关于Twitter和激进化的警告
- 原标题:跆拳道在中国斗殴中被武术团灭?韩国人看后表示不服
- [etcd] 使用 Txn 一次性插入多个语句
- 向毕业妥协系列之机器学习笔记:监督学习-回归与分类(一)
热门文章
- halcon Matching-3D 3D匹配,持续更新
- Val编程-速度因子
- 在新的固态硬盘只装ubuntu16.04系统,重启后无启动项解决方案
- 华为服务器故障灯不开机_华为服务器日常维护及故障处理介绍V.ppt
- channelinactive触发后不关闭channel_go那些事儿|channel使用及其实现原理
- 芯明天debug assertion failed_YJLV铝芯电力电缆的基本介绍
- Codeforces 1188A 构造
- java如何实现Socket的长连接和短连接
- CentOS 搭建 LAMP服务器
- 基于Angularjs实现分页