WM性能优化的一些经验
2010-08-22 12:53:00 来源:WEB开发网昨天听黎波讲了关于SQL Server Compact 性能调校课程中,主要分析了SQL Server Compact如何优化。
主要分为,在数据访问层上与表、sql语言上的一些优化。这里就不再罗嗦一遍了。
SQL Server Compact优化,只是WM开发中需要优化的一部分。如何选择好不同的技术,在实际项目中来根据具体情况再分步优化,不断的改善程序的性能,才是我们所必须要关注的。
目前WM应用领域已相当广泛了,从最初的物流系统到现在的吃饭点菜,从工业领域到目前的个人家用都涉及到了。正所谓不同的领域有所需的不同要求。
我们就从WM客户端开始,一一讲述吧。
客户端上,由于使用C/S程序,从性能上来讲多数取决于设备及.net cf的版本。
另外P/Invoke的调用也相当耗费性能。我们需注意的地方就是在P/Invoke 的内部有一个LoadLibrary/FreeLibrary 对。
在调用API之前,先Load该DLL,然后再调用其API。完全用完后Free它,可以加速性能。
作为企业或公司级的应用来说,已基本没有任何问题。(毕竟界面较简单,基本都是添/删/改/查)
但是作为个人应用,比如像一些短信拦截,电话屏蔽之类的。 .net cf往往力不从心,需要调用大量的API。
另外3D类也特别不好,就象摆设一样,还是以2D图片来代替更好些。
界面上的控件建议不要太多。可以将图片之类的放入到资源文件中,这样比直接在外部访问更快些。
用using,来创建-释放对象。
在WM设备上使用SQL Server Compact,注意,该版本数据库,就是文件型数据库。用ado.net访问时,要注意一些优化。
1.用DataReader代替DataAdapter。
2.SqlCeResultSet可以非常方便的来回访问。
3.用TableDirect方式比直接用Select更快些,但只能访问单表。
4.表最好做一下索引,便于提高sql速度。
5.个人觉得能用List
SQL Server Compact同步问题。微软曾推出ADO.net Sync Service for device。虽然功能很强大。但一旦数据量大的情况,同步时间较慢,且需要相对稳定的网络环境,不适宜。
根据适当情况,如果类似于定单,则可以下完定单后,立刻调用Web Service通知服务器。
对于商品库存表之类不采用Sync同步,在于,一旦客户端较多时,每个客户端的该表都与主表不一致时,就有冲突。1对1的同步没有任何问题。多对1的同步就无法很好的解决。
赞助商链接