摘要: 查看《软件开发性能优化系列》目录 异常也是现代语言的典型特征。与传统检查错误码的方式相比,异常是强制性的(不依赖于是否忘记了编写检查错误码的代码)、强类型的、并带有丰富的异常信息(例如调用栈)。 1、不要吃掉异常 关于异常处理的最重要原则就是:不要吃掉异常。这个问题与性能无关,但对于编写健壮和易于排错的程序非常重要。这个原则换一种说法,就是不要捕获那些你不能处理的异常。例如:private voi...阅读全文
posted @ 2010-02-06 22:49 军军 阅读(1160) 评论(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 军军 阅读(1478) 评论(3) 编辑
摘要: 1、 线程同步 线程同步是编写多线程程序需要首先考虑问题。C#为同步提供了 Monitor、Mutex、AutoResetEvent 和 ManualResetEvent 对象来分别包装 Win32 的临界区、互斥对象和事件对象这几种基础的同步机制。C#还提供了一个lock语句,方便使用,编译器会自动生成适当的 Monitor.Enter 和 Monitor.Exit 调用。 a)、同步粒度 ...阅读全文
posted @ 2010-01-25 23:48 军军 阅读(1451) 评论(0) 编辑
摘要: 1、使用StringBuilder做字符串连接 string是不变类,使用+操作连接字符串会导致创建一个新的字符串。如果字符串连接次数不是固定的,例如在一个循环操作中,则应该使用StringBuilder类来做字符串连接工作。因为StringBuilder内部有一个StringBuffer,连接字符操作不会每次分配新的字符串空间。只有当连接后的字符串超出Buffer大小是,才会申请信的Buffer...阅读全文
posted @ 2010-01-22 21:23 军军 阅读(1896) 评论(30) 编辑
摘要: 《软件开发性能优化系列》目录 垃圾回收时现代语言的标志之一。垃圾回收解放了手工管理对象释放的工作,提高了程序的健壮性,但是副作用就是程序代码可以对于创建对象变得随意。1、避免不必要的对象创建 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情型。a)、避免循环创建对象 如果对象并不会随每次循环改变而改变状态,那么在循环中反复创建对象将带来性...阅读全文
posted @ 2010-01-19 18:00 军军 阅读(1267) 评论(6) 编辑
摘要: 一、SQL拼写建议1、查询时不返回不需要的行、列 业务代码要根据实际情况尽量减少对表的访问行数,最小化结果集,在查询时,不要过多地使用通配符如:select * from table1语句,要用到几列就选择几列,如:select col1,col2 from table1;在可能的情况下尽量限制结果集行数如:select top 100 col1,col2,col3 from talbe2,因为某...阅读全文
posted @ 2010-01-18 11:09 军军 阅读(2297) 评论(6) 编辑
摘要: 1、参数化sql 对于一般简单查询,数据库能自动参数啊以重用计划缓存,如:SELECT * FROM table WHERE id=1;SELECT * FROM table WHERE id=4 在sqlserver内部能自动参数化这个查询,SELECT * FROM table WHERE id=@1 但是一旦sql语句中带有join、union、top……等关键字...阅读全文
posted @ 2010-01-17 13:48 军军 阅读(2214) 评论(14) 编辑
摘要: 目前主流的开发语言有3种:php、asp.net、jsp。下面从我的角度来说一下我对这三种语言的评价………………阅读全文
posted @ 2010-01-17 00:02 军军 阅读(518) 评论(0)  编辑
摘要: 死锁原因: 死锁是由两个相互阻塞的线程组成,它们互相等待对方完成,一般死锁情况下两个数据库事务之间存在着相反的操作。sqlserver中死锁监视器定时检查死锁,如果发现死锁,将选择其中回滚消耗最小的任务,这时候发生1025数据库错误。可以通过启用sqlserver2005快照模式,避免一些读/写的逆向阻塞造成的死锁.但是对于一些写/写阻塞的死锁可能无法解决,很多时候需要从业务的角度来避免一些写/写...阅读全文
posted @ 2010-01-16 19:09 军军 阅读(1569) 评论(1) 编辑
摘要: 阻塞原因 在默认事务隔离情况下,数据库事务越长,一方面独占锁被持有的时间越长,写操作阻塞读操作的机会就越多;另一方面,在默认的读提交隔离模式下,读操作使用共享锁与独占锁不兼容,读操作也会阻塞写操作。 阻塞也是死锁产生的基本条件,改善了阻塞就能有效减少死锁。 在软件开发后期,在对大数据量的集成测试工程中,通过活动查看器可以观察到阻塞情况,主要产生阻塞的原因就是读和写相互阻塞在对同一个大表的操作上。因...阅读全文
posted @ 2010-01-16 11:00 军军 阅读(1347) 评论(1) 编辑
摘要: 无主键、索引或者没有查询索引无效,是产品查询慢的最常见问题,以下是数据库表主键和索引设计的主要原则1、主键主键ID,主键既是约束也是索引,同时也用于对象缓存的键值。2、索引 *组合或者引用关系的子表(数据量较大的时候),需要在关联主表的列上建立非聚集索引(如订单明细表中的产品ID字段、订单明细表中关联的订单ID字段) *索引键的大小不能超过900个字节,当列表的大小超过900个字节或者若干列的和超...阅读全文
posted @ 2010-01-15 17:12 军军 阅读(1513) 评论(5) 编辑
摘要: 树表设计: 树状表都是使用ID和IDParent两个字段来表示树关系。对树进行查找只能使用自关联方式,不光写法麻烦而且记录多的时候查询性能会非常差。建议在设计树表的时候可以考虑加入treePath字段,记载到该节点记录需要经历的树路径。虽然会增加Insert和Update的成本。但是对查询树关系非常有帮助。可以避免大部分的自关联查询。分区表: 记录超过一百万的表要考虑是否需要使用分区表。对于能够明...阅读全文
posted @ 2010-01-15 16:31 军军 阅读(1696) 评论(4) 编辑
摘要: 一、数据库性能1、表设计2、主键、索引设计3、阻塞4、死锁5、SQL查询性能优化(一)6、SQL查询性能优化(二)二、C#语言1、垃圾回收2、String操作3、多线程4、类型系统5、异常处理6、反射7、基本代码技巧三、ADO.NET1、应用ADO.NET的一些思考原则2、Connection3、Command4、DataReader5、DataSet四、Asp.net1、减少往返进程2、避免阻塞...阅读全文
posted @ 2010-01-15 12:48 军军 阅读(2819) 评论(14) 编辑
摘要: 由于最近比较忙,没有太多的时间来整理我的电子商务项目,所以暂缓本系列的问题。如有疑问也欢迎大家给我留言或者邮件。阅读全文
posted @ 2010-01-15 12:04 军军 阅读(41) 评论(0)  编辑
摘要: 上一篇内容已经确定了我们开发电子商务需要的技术,本节将介绍开发大型电子商务所需要达到的技术目标,实现电子商务网站的高速、高并发、高负载、高稳定性、高扩展性、SEO高收录等等一系列问题。因为个人能力有限,不可能考虑周到,望大家给予补充和指正建立大型的电子商务网站,不可或缺需要有很多功能和用到很多技术。在此我将介绍一下我所了解的可能需要实现的功能和用到的技术。1、页面的HTML静态化 页面静态化有以下...阅读全文
posted @ 2009-12-28 15:42 军军 阅读(164) 评论(0)  编辑
摘要: 本系列文章主要描写我在电子商务开发中所碰到的一些问题与我的解决方法。 有很多人喜欢日记、博客等记录生活点滴,我一向不喜欢写东西,从小即使老师家长的强迫我也很少写日记。 人生走过了四分之一,总觉得有写点东西的必要,把自己所做所想写下来,以备后看。所以决心写下关于电子商务的浅见浅想。本系列文章将不断更新,目前只是个大概框架标题,之后会有所调整 阅读全文
posted @ 2009-12-22 10:08 军军 阅读(86) 评论(0)  编辑
posted @ 2009-04-11 08:35 军军 阅读(91) 评论(0) 编辑
posted @ 2009-04-10 22:31 军军 阅读(211) 评论(0)  编辑
posted @ 2009-03-18 13:28 军军 阅读(194) 评论(0)  编辑
    该文被密码保护。
posted @ 2009-02-23 16:04 军军 阅读(87) 评论(0) 编辑
posted @ 2009-01-04 16:28 军军 阅读(95) 评论(0) 编辑
posted @ 2008-12-11 13:31 军军 阅读(54) 评论(0)  编辑
posted @ 2008-12-11 10:20 军军 阅读(81) 评论(0)  编辑
posted @ 2008-12-10 17:09 军军 阅读(491) 评论(0)  编辑
posted @ 2008-12-09 10:03 军军 阅读(268) 评论(2) 编辑
posted @ 2008-12-05 11:05 军军 阅读(55) 评论(0)  编辑
posted @ 2008-12-05 10:41 军军 阅读(212) 评论(0)  编辑
posted @ 2008-12-05 10:22 军军 阅读(430) 评论(0) 编辑
posted @ 2008-12-03 12:52 军军 阅读(107) 评论(0)  编辑
posted @ 2008-12-02 15:03 军军 阅读(566) 评论(0)  编辑
posted @ 2008-12-02 14:59 军军 阅读(34) 评论(0)  编辑
posted @ 2008-11-27 13:08 军军 阅读(341) 评论(0)  编辑
摘要: SQLServer查询最近一天,三天,一周,一月,一季度方法阅读全文
posted @ 2008-11-18 23:44 军军 阅读(616) 评论(0)  编辑
posted @ 2008-10-18 00:12 军军 阅读(125) 评论(0) 编辑
posted @ 2008-10-15 12:04 军军 阅读(545) 评论(3) 编辑
posted @ 2008-10-07 11:55 军军 阅读(84) 评论(0)  编辑
posted @ 2008-09-27 17:30 军军 阅读(47) 评论(0)  编辑
posted @ 2008-09-27 17:23 军军 阅读(68) 评论(0)  编辑
posted @ 2008-09-27 17:11 军军 阅读(227) 评论(0)  编辑
posted @ 2008-09-10 11:13 军军 阅读(46) 评论(0)  编辑