整理一些提高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#编程性能的技巧的更多相关文章
- 25条提高iOS App性能的技巧和诀窍
25条提高iOS App性能的技巧和诀窍 当我们开发iOS应用时,好的性能对我们的App来说是很重要的.你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢也会伤害到你的审核. 然而,由于IO ...
- 提高Web页面性能的技巧
现在动辄几兆大小的页面加载量,让性能优化成了不可避免的热门话题.WEB 应用越流畅,用户体验就会越好,继而带来更多的访问量.这也就是说,我们应该反省一下那些过度美化的 CSS3 动画和多重操作的 DO ...
- 提高HTML5 Canvas性能的技巧
详细内容请点击 一:使用缓存技术实现预绘制,减少重复绘制Canvs内容 很多时候我们在Canvas上绘制与更新,总是会保留一些不变的内容,对于这些内容 应该预先绘制缓存,而不是每次刷新. 直接绘制代码 ...
- 提高php编程效率技巧
提高php编程效率技巧 投稿:mrr 字体:[增加 减小] 类型:转载 时间:2015-08-13 php是全球范围应用范围最广的开发语言,php和linux.apache.mysql紧密结合,形 ...
- asp.net提高程序性能的技巧(一)
[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Pe ...
- 提高 DHTML 页面性能
联盟电脑摘要:本文说明了某些DHTML功能对性能的重大影响,并提供了一些提高DHTML页面性能的技巧. 目录 简介 成批处理DHTML更改 使用innerText 使用DOM添加单个元素 扩展SELE ...
- Asp.net性能优化技巧
[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Pe ...
- 怎样提高DB2存储过程性能
高性能的SQL过程是数据库开发人员所追求的,我将不断把学到的,或在实际开发中用到的一些提高SQL过程性能的技巧整理出来,温故而知新. 1,在只使用一条语句即可做到时避免使用多条语句 让我们从一个简单的 ...
- php中一些提高性能的技巧
php中一些提高性能的技巧 tags:php性能 提高性能 php中的@ php的静态 引言:php作为一种脚本语言,本身的性能上肯定是不如c++或者java的.拥有简单易学的特性的同时,性能提升的空 ...
随机推荐
- Angular2.js——主从结构
学习这一篇的内容,还回到我们快速起步的应用上来. 主从结构,我们想要做一个英雄的列表,我们希望用户在列表中选中一个英雄,然后这个被选中的英雄出现在详情视图中.主视图是英雄列表,从视图则是被选中英雄的详 ...
- 【数据库系列学习一】Access与Excel的区别和联系
1.主题对一个主题Access只有一个表,而Excel可以有多个表.2.多表关系Access表各个表间存在严格的关联.Excel表各个表间的关系随意.3.数据计算Excel表中单元格中可以存储数据,也 ...
- __call()和__callStatic()实例详解
<?php class Demo { //第一个参数是方法名,第二个参数是方法参数,以数组形式传入 public function __call($method,$args) { //遍历参数$ ...
- 盘点国内外那些有野心的BI公司
在当前BI商业智能市场打开并被广泛应用的背景下,国内外涌现出一大批优秀的BI产品.当然好的BI产品一定离不开好的BI公司,在最新发布的Gartner 2017 年<商业智能和分析平台魔力象限&g ...
- Gulp和webpack的区别,是一种工具吗?
疑问:gulp和webpack 什么关系,是一种东西吗?可以只用gulp,不用webpack吗 或者反过来? 它们的区别和概念 ------------------------------------ ...
- VueJs开发笔记—IDE选择和WebStorm性能优化、框架特性和数据调用、路由选项以及使用
一.IDE的选择: VsCode和WebStorm都是不错的选择,两者运行调试都非常的方便都可以使用快捷键运行和停止,就打开项目的速度和对电脑配置的要求来说,vscode要比webstorm要出色很多 ...
- Springmvc+mybatis+restful+bootstrap框架整合
框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz( ...
- JSP----获取表单参数
在页面中可大量使用 request 对象来获取表单域的值,获取表单域的值有如下两个 方法. • String getParamete(String para mN ame): 获取表单域的值. • S ...
- Google Android Studio Kotlin 开发环境配置
Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对Kotlin的重视,本文就介绍一下Android Studio下的Kot ...
- ZigZag Conversion2015年6月23日
题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...