最近一直在忙于性能优化方面的调试工作,所以一直在研究这方面的问题。其实那些研究都是不着边际的事情,但是作为自己的知识储备,也算是一件有意义的事情。目前的工作算是“OK”了,不过我自己却不是很满意。在整个过程当中发现了不少的问题,首先是XML的速度,后来是FileStream的问题,接下来是Thread的互相影响问题。天啊!我真想喊出来,才解决了数据读取的问题又出现了Thread的问题——Ce里面的背景线程一旦运行,就会严重阻塞前台的线程。有没有谁知道CE里面(包括.NET CF里面)的线程机制是什么样的?是轮换式还是抢占式?优先级有没有作用?.NET CF里面的线程简直就是弱的不堪设想,除了能够让他运行起来,加上调一个优先级,就没有更多的功能了。不能够强制中断,不能够Suspend/Resume,也读不出来他的运行状态……真是要命,如果没有人能够给我答案的话只好自己慢慢找了。还好,目前的性能问题还可以含糊过去,比如让背景线程推迟30分钟之后再运行,但愿这样JGTM不会察觉出来他的存在。
很久没有仔细去看看外面周围都发生了些什么了,今天下午真的要好好的看看一些很久没有看到的Blog了。比如
Neil Cowburn和
Alex Yakhnin的,发现里面又有好多新的东西了,真是很喜欢他们的Blog,虽然更新速度并不快,大师每篇都值得一看。不像我这个Blog,充满了不可阅读的或者不值得阅读的废话。哎,废话少说,还是来看看最近他们都说了些什么吧:
(所有内容未经我亲自验证,仅代表原作者观点)
Neil Cowburn说:
Ultra-Simple Application Logging原来在.NET CF上面开发,如果想要Log一些东西是这么简单的。大概意思就是通过P/Invoke改变标准输入输出流的方向,然后就可以直接用Console里面的方法来输出字符串到一个特定的文件里面了,没错,就那么简单。
Pocket PC Magazine Best Software Awards 2004 -- WE WON!opennetcf.org获得了PPC Mag 的2004年度最佳软件大奖。嗯,应该指的是里面的SmartDevice Framework吧?说句老实后,这个东西确实是一件神奇的东西,它能够快速的解决许多你认为非常头疼的事情(也许待会儿我要到那里面找找有没有增强型的Thread类),尽管里面有很多地方有Bug。Bug不是问题,因为这个东西完全免费和开源,只要你自己会调试,水平足够的人都可以自己去截取代码和修改。这个东西最大的问题是:太大了,也还不够大。一方面我希望他能够小巧一点,因为这么大的东西会影响加载速度和占用内存的空间,而我自己又想偷懒,不想老是自己截取代码来避免这个缺点。另外一方面我却希望他能够解决更多更多的问题,比如COM交互,或者DX之类的东西,哈哈,这个就真是勉为其难了。总结一下,SD Framework还是很好D……
Craig on .NET Compact Framework 2.0Craig是谁?我不知道,他最近在一个内部培训的时候进行即席演讲,并
录了下来。他说了一些他觉得.NET CF 2.0里面最让他喜欢的东西,不听的话你真是错过了很精彩的东西!比如说,.NET CF 2.0 里面将会有Generics,有Interators,有Com Interop,有Sql ce.NET,有DX,有MSNQ,有直接操作Inbox的能力,有Data Encryption,有Location API,有Camera API,有……听得我是极度兴奋(还有性能改善忘了列出来了)。不过这个只是内部培训的时候录下来的,估计是为了训练演讲能力,提高培训能力的。(上一次有幸参加了MS给MVP做的类似培训,感觉棒极了。哈达不一定赞同,他水平太高了……)毕竟不是官方的东西,可信程度还是不高,不过也比我自己瞎吹要好多了。嗯,别的东西我不要,就要Generics、Sql ce.NET、DX,还有性能提升,就这些了,我还是不太贪心的。
这里还有
另外一个录像,我还没有仔细看,大家也可以看看,是关于ASP.NET 2.0的(显著优点的)。
这个Post实际上是来自
Carter Maslan的。
CFNunitBridge GotDotNet Workspace嗯?CF也上NUnit了?嘿嘿……怀疑ing
Who would like to fly Virgin Galactic?FT,还有可以飞到室女座星云的方法?Neil想,我可不想。那么大的星云(跟银河系一般大)要找个落脚点可不容易,目前人类在300光年的范围以内都尚未找到和地球环境相近的星球,更何况要在一个直径是万光年的星系里面去找,真是茫茫大海呀……
Meet the Visual Studio for Devices Team关于Visual Studio for Devices Team里面的
录像Using POOM with .Net Compact Framework Whidbey Beta1 前面说了.NET CF 2.0 可以POOM,这里有一个例子可以去看看。
Show me your desktop!看看人家多好,最小的也使17寸的液晶……羡慕有两个显示器,以后有钱了一定要买四个显示器,一个打开VS2kX玩玩,一个运行自己写出来的程序玩玩,一个摆着玩玩,还有一个摔着玩玩……
Catch-up Round-up都是一些连接,值得一看。
Visual Studio For Devices Team BlogVSD Team的Blog,如果你对如何改进VS有什么想法,可以给他们说说,也许会管用。
Alex Yakhnin 说:
Accessing Memory Mapped Files from CF这个是关于在CF上面使用FileMapping技术的Post,值得研究。
Nota bene...这个……这个……
Using cordbg for .NetCF其实也是转自别人的Blog,好像Neil也转了。值得研究,这样我们也许有机会知道.NET CF里面到底搞了些什么小动作。
Great info on Managed App Startup and Retargeting有点深度的内容,具体是什么还没有仔细看。好像说的是.NET CF里面EE启动Managed App的机制,不知道有没有看错。
XPathReader on .NetCF在.NET CF上面XPath?上次仅仅是XML已经让我非常头疼了,还要XPath呢!不过文章里面说,有人提到现在的XML解析方法有问题(没有提到到底是DOM还是XmlReader),而值得庆幸的是
Dare Obasanjo,一个MS的PM,发表了一个
XPathReader,据说除了提供了一些XPath的能力之外,还有效率方面的提高?该死的Alex说:
The next step will be to test a comparison performance of this library vs XmlDocument in CF.
但是却没有写出来,难道非要我也研究一遍?待会儿给他email以下,如果效率有很大提高,那么这些天的工作算是白忙活了……(估计XML的解析效率很难提高的,毕竟是解析……不过话还是不要说死为好。)
Sending mail with attachments from .NetCF.如果有人对于在.NET CF里面如何发送带有附件的邮件有困难的话,可以看看这个Post,也许对你有帮助。
OK,今天的大转载集合到此,还要看看Thread的问题呢……