摘要:从业十年,看到过许多优秀的程序员,也见过不少平庸之辈,更有不少只能转做其它。原因我想也许他们一开始对自己的要求就不高,更重要的也可能是他们没有抓住程序的本质,没有搞清楚如何才能把事情做好。首先想把每个程序都做到最好这种信念是先决条件,人首先要有志向,只要想做好才有可能做好,下文所有的内容都是给这类人写的,如果只想混口饭吃,或者以后想做市场等其它方面的人就不用想这些事了。以下是我认为比较重要的几个原...
阅读全文
摘要:这两天又接到一个Bug:大家都抱怨待机唤醒的速度太慢。首先我们假定应用程序没有这么大的功力来影响系统,主要从驱动方面入手。当然主要是要找出是哪个模块在待机和唤醒时比较慢,有以前编译PM模块的经验这个问题变得很简单:在PM调用SetDevicePower设置各驱动的电源状态时计算一下实际花了多少时间。经统计发现NLED和AUDIO驱动都比较慢,花费300ms以上,而且AUDIO驱动在进D3和D4状态...
阅读全文
摘要:前几天报来一个BUG:有时唤醒后屏不亮,USB连接已经在起作用,但连不上ActiveSync。初步判断是哪个驱动在进入D0状态时死掉了,从而引起PM无法继续进行下面的动作。所以写了一个程序去查是哪些驱动还在D4状态,果然有一些驱动依然是D4状态。但无法确定是哪个驱动的问题。所以在PM.dll中打印调试信息。 首选将PM的代码都拿过来加上信息,将其链接成动态链接库。搜索WPC下的PM.dll文件,...
阅读全文
摘要:Windows Mobile从5.0开始就有一个问题:打电话时cprog.exe会有内存泄露。以前系统内存小,很快就发现可用已经内存消耗完,最近做的系统内存变大了,没有注意到这个问题。但会把cprog.exe全身的内存空间用完,以致引起一些奇怪的现象,最后使用一些内存分析工具才会现是这个程序的内存使用完了。 最后通过试验发现cprog.exe在打电话时会播放MID文件,文件名在如下注册表中: [HKEY_CURRENT_USER\ControlPanel\Sounds\Dialing] [HKEY_CURRENT_USER\ControlPanel\Sounds\Ending]通过将声音文件.
阅读全文