C# 开发WM程序性能优化的几个可能的方面

本文分享了在WindowMobile6.1上开发实时应用程序的经验,重点介绍了在绘图、文件写操作、多线程等方面的技术优化手段,以确保程序在配置较低的设备上仍能流畅运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近又写在Window Mobile 6.1上面写了个程序,包含了从蓝牙设备读取数据、处理数据、显示数据和在SD卡上存储数据的功能,四者同时且实时进行,如何保证所有工作都能完成且不会有太大延迟,使其在配置稍低的手机,例如主频较小的HTC S1上也能运行,着实费了一番功夫。总结了一下,我目前采取的方法,除了在程序本身和算法上优化外,还有以下方面:

1、绘图

         在我的程序中需要实时的显示数据。在屏幕中显示是一个很繁重的工作。不同于PC,稍低端的手机往往没有很大的内存和很高的CPU主频,因此,再实现双缓冲绘图时,用到的内存位图、画笔、画刷等资源应该是在绘图消息响应函数外就初始化好,在绘图函数中重复使用,否则若每次在绘图中都重新初始化一副位图,会耗费很长时间,严重影响存储的性能。

        另外,两次绘图之间的间隔不宜太小,间隔太小,连续的重绘会导致屏幕响应不畅,很容易造成假死机的情况

2、文件写操作

        相比绘图,文件写操作对性能的影响稍小,但也是一个可能影响性能的因素,尤其是向速度较慢的SD卡上写数据的时候。在这里,可以考虑构造一段缓存,缓存接收到的数据,满足一定条件的时候再写,而不是每次收到数据就写并Flush。在这里,写的块大小最好是2的倍数。

3、多线程

        这个不用多说了,线程系统调度的基本单位,尽管CPU是串行的,但由于多线程的程序可分得更多的时间片,因此理论上会优于单线程,但要非常注意同步问题以及销毁时容易出现的ThreadAbortException

 

以上是我在开发实时程序优化性能时考虑的几个方面,当然也会从算法和代码层面上优化。说的有不对的地方,望指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值