随笔分类 -  .net

摘要:查看《软件开发性能优化系列》目录 异常也是现代语言的典型特征。与传统检查错误码的方式相比,异常是强制性的(不依赖于是否忘记了编写检查错误码的代码)、强类型的、并带有丰富的异常信息(例如调用栈)。 1、不要吃掉异常 关于异常处理的最重要原则就是:不要吃掉异常。这个问题与性能无关,但对于编写健壮和易于排错的程序非常重要。这个原则换一种说法,就是不要捕获那些你不能处理的异常。例如:private voi... 阅读全文
posted @ 2010-02-06 22:49 JoneLee 阅读(2305) 评论(0) 推荐(0) 编辑
摘要:1、 避免无意义的变量初始化动作 CLR保证所有对象在访问前已初始化,其做法是将分配的内存清零。因此,不需要将变量重新初始化为0、false或null。//Generally expert 10 or less itemsprivate HashTable _items = null;private NameValueCollection = _queryString = null;private... 阅读全文
posted @ 2010-02-01 09:39 JoneLee 阅读(1930) 评论(3) 推荐(1) 编辑
摘要:1、 线程同步 线程同步是编写多线程程序需要首先考虑问题。C#为同步提供了 Monitor、Mutex、AutoResetEvent 和 ManualResetEvent 对象来分别包装 Win32 的临界区、互斥对象和事件对象这几种基础的同步机制。C#还提供了一个lock语句,方便使用,编译器会自动生成适当的 Monitor.Enter 和 Monitor.Exit 调用。 a)、同步粒度 同步粒度可以是整个方法,也可以是方法中某一段代码。为方法指定 MethodImplOptions.Synchronized 属性将标记对整个方法同步。例如:[MethodImpl(MethodImplO. 阅读全文
posted @ 2010-01-25 23:48 JoneLee 阅读(2492) 评论(0) 推荐(1) 编辑
摘要:1、使用StringBuilder做字符串连接 string是不变类,使用+操作连接字符串会导致创建一个新的字符串。如果字符串连接次数不是固定的,例如在一个循环操作中,则应该使用StringBuilder类来做字符串连接工作。因为StringBuilder内部有一个StringBuffer,连接字符操作不会每次分配新的字符串空间。只有当连接后的字符串超出Buffer大小是,才会申请信的Buffer... 阅读全文
posted @ 2010-01-22 21:23 JoneLee 阅读(3063) 评论(30) 推荐(4) 编辑
摘要:《软件开发性能优化系列》目录 垃圾回收时现代语言的标志之一。垃圾回收解放了手工管理对象释放的工作,提高了程序的健壮性,但是副作用就是程序代码可以对于创建对象变得随意。1、避免不必要的对象创建 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情型。a)、避免循环创建对象 如果对象并不会随每次循环改变而改变状态,那么在循环中反复创建对象将带来性... 阅读全文
posted @ 2010-01-19 18:00 JoneLee 阅读(1841) 评论(6) 推荐(1) 编辑

http://s.click.taobao.com/t_9?p=mm_33531378_0_0&l=http%3A%2F%2Fwww.tmall.com%2Fgo%2Fact%2Fsale%2Ftmmytkpd.php%E8%81%BD
点击右上角即可分享
微信分享提示