Code Review的重要性
这几天一直在搞一家客户的产品升级动作,数据的转移已经完成大部分,因为升级主要的目标是处理性能问题,所以我针对性的对将要升级的版本进行了一些操作性能检查,真是不做不知道,一做吓一跳,有一个查询选择人员的页面数据(60,000)的结果显示居然花费了50s......oh, my god
没有办法就仔细打开代码开始分析,分析结果是这样的:
1、数据绑定动作做了2次,最要命的是其中一次是直接绑定了所有60,000条数据,这直接将效率下降了40s左右(注:我们系统对于数据的查询采用的是部分绑定,只绑定需要显示的数据),修改后查询需要时间10秒左右。
2、代码中将数据查询出来后又针对这些数据做了一次循环遍历,将其中3列合并为1列,耗时3s左右......faint again...修改方式不用多说,直接将运算动作放到了SQL中,SQL的运行时间基本无变化。
3、SQL语句分析完后发现在Where子句中居然存在两个字段直接等于的情况(WHERE PSNACCOUNT.PERSONID = PSNACCOUNT.PERSONID),进行了完全没有必要的数据库运算,去掉后SQL语句的执行再次提高3s,经过代码分析,产生这个条件是原因是 —— 某个公用组件的使用方法不正确......无语
经过这次事实的经验教训,更加让我清楚地认识到了Code Review的重要性,尤其是在软件产品发展的过程中,一个非常简单的道理:Code Review做的越早,产品就可以做得越好!