陈斌彬的技术博客

Stay foolish,stay hungry

程序性能提高

1. 不必要的循环

2. 在不必要的循环中生成不必要的对象

在循环中如有需要判断跳出循环的条件,尽量写到开头。生成N个对象耗了内存之后再判断,则为时晚矣。

在循环中如果需要查询数据库获得信息,返回类型尽量不要使用大对象如DataSet,DataTable等。如果返回的是单行的数据可以考虑使用一维数组,如果返回的是少数几个字段,可以使用ref,out这种方式。

3. 滥用全局变量

4. 冗余的数据来源集合

尽可能只抓用到的数据,不要select *。同一个程式尽量重用集合,而不是每个操作或者循环中抓一次。

5. 未及时释放连接,对象

连接用完则close。不重用的集合用完则clear。每隔一段时间可以强制垃圾回收gc.collect。

6. 过度重绘窗体

这也是个要命的动作。成百上千甚至更多的数据,如果一次绘制一条到grid,则微型设备会晕倒。比如扫条码,操作员并不会每扫一条就去grid中看一下的。所以也不必要每扫一个条码就重绘Grid。等全部扫完,再一次性show出来,就会快很多。

7. 一次性显示全部数据

这个的解决办法可以参考web程式的分页显示了。查询完数据库,获得数据集合。第一次只show出前N条即可。

8. 过度的事件监听

虽然windows ce程式提供了lostfocus,getfocus,txtchanged等事件。为了那点少得可怜的内存,建议能不能就尽量不要用。

9. 异常未处理

10. 生成应用程式时,采用debug方式比release方式也会消耗更多的资源,阻碍性能的提升。

11. 非托管资源要及时释放。