1,不必要的循环
2,在不必要的循环中生成不必要的对象
在循环中如有需要判断跳出循环的条件,尽量写到开头。生成N个对象耗了内存之后再判断,则为时晚矣。
在循环中如果需要查询数据库获得信息,返回类型尽量不要使用大对象如DataSet,DataTable等。如果返回的是单行的数据可以考虑使用一维数组,如果返回的是少数几个字段,可以使用ref,out这种方式。
3,滥用全局变量
4,冗余的数据来源集合
尽可能只抓用到的数据,不要select *。同一个程式尽量重用集合,而不是每个操作或者循环中抓一次。
5,未及时释放连接,对象
连接用完则close。不重用的集合用完则clear。每隔一段时间可以强制垃圾回收gc.collect。
6,过度重绘窗体
这也是个要命的动作。成百上千甚至更多的数据,如果一次绘制一条到grid,则微型设备会晕倒。比如扫条码,操作员并不会每扫一条就去grid中看一下的。所以也不必要每扫一个条码就重绘Grid。等全部扫完,再一次性show出来,就会快很多。
7,一次性显示全部数据
这个的解决办法可以参考web程式的分页显示了。查询完数据库,获得数据集合。第一次只show出前N条即可。
7,过度的事件监听
虽然windows ce程式提供了lostfocus,getfocus,txtchanged等事件。为了那点少得可怜的内存,建议能不能就尽量不要用。
8,异常未处理
9,生成应用程式时,采用debug方式比release方式也会消耗更多的资源,阻碍性能的提升。
10,非托管资源要及时释放。
浙公网安备 33010602011771号