黎波

Windows Mobile Development for Line of Business
posts - 179, comments - 1140, trackbacks - 36, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
.NET Compact Framework Power Toys 3.5中包含了一个.NETCF CLR Profiler工具,它用于监测.NETCF应用程序在CLR(Common Lanaguage Runtime)中的对象分配和垃圾回收情况。.NETCF开发人员可以通过分析结果确定如何改进应用程序的性能,特别是存在内存占用问题的程序。关于.NETCF CLR Profiler工具的使用,可以看Steven Pratschner写的Using CLR Profiler for .NET Compact Framework系列文章。

今天又发现一个可以监测.NETCF代码执行效率的性能分析工具,而且是免费的——EQATEC Profiler






开发背景

At EQATEC we are experts in embedded development, both native (C/C++) or managed (C#). We have completed many large .NET CF projects. We have the only Microsoft embedded MVP in Scandinavia. We've been doing embedded development for about 10 years now.

In 2006-2007, when developing a really large .NET Compact Framework application in C# for Windows CE, we looked around for a .NET CF code profiler. Surprisingly there were none. All we found were memory-profilers, i.e. for tracking object allocations and memory usage. That's useful too, but not if you want to pinpoint bottlenecks to improve your application's performance.

So we built our own code profiler. And it works really, really well.

We've used it for a year on this particularly large application (7-8000 methods in 40-50 DLLs) and easily found and fixed performance bottlenecks that would have been very hard to spot without a code profiler. We've even integrated the profiling-step in our autobuild. The profiling-step is very quick and the profiled code is only 40-50% bigger and runs 20-25% slower. Profilers can easily make your code run 2-10 times slower, so ours is quite efficient.

Because it works so well, and there are no other code profilers like it, we decided to make it available to all other .NET CF developers. And we decided to do so for free, so it won't cost you anything. Just download it and start optimizing your own application, or try profiling the demo-app we’ve included.

One reason for giving it away free is to get some idea about how much demand there is for tools like this. Therefore we'd kindly ask you to register the download, simply to give us some idea of how many developers - and in what kind of businesses - will find this tool useful.

Best regards,
The EQATEC tool team

请到这里下载最新版本吧:http://www.eqatec.com/tools/profiler

Feedback

#1楼    回复  引用  查看    

2008-05-12 09:43 by JustDI      
好东东,顶一个。

#2楼    回复  引用  查看    

2008-05-12 11:57 by AppleSeeker      
确实好啊~~~~支持下

#3楼    回复  引用    

2008-05-21 16:52 by Maia [未注册用户]
黎老师,你好!
我用的是Pocket 2003的系统,现在部署安装出现一些问题!
1.生成的.cab文件安装之后,.cab文件会自动删除,我在网上找了些资料,说是把文件设成只读就不会删除掉,我照这样做了,可还是会删除。
2.我现在想实现的效果是开机自动安装应用程序,同时自动把无线网络给设置好!


麻烦您帮下忙!
我的Email:lengqingyou@gmail.com

#4楼 [楼主]   回复  引用  查看    

2008-05-21 23:03 by 黎波      
@Maia
1.一般是把文件设置为只读可以解决你的问题,不知道有没有其他的方法,应该是某个注册表项。
2.这个估计不是那么容易了。

#5楼    回复  引用    

2008-05-22 10:59 by Maia [未注册用户]
我用的硬件是intermec的CN2型号

1.不知道会不会跟硬件有关系!

2.我见过有人已经实现了!

#6楼    回复  引用    

2008-05-24 17:09 by Maia [未注册用户]
黎老师:
我今天再次试了一次,把文件设为只读,放在主内存里,安装.cab文件,没有删除,但是,放在存储卡里安装,就会被删除,很奇怪!

#7楼    回复  引用    

2008-06-24 17:09 by wangxm [未注册用户]
按照User Guide的描叙,使用EQATEC将目标程序Profile后,放在PDA实体上运行,可是没找到生成的报告(可能压根没生成),可是它提供的Demo程序却能在\Temp目录下生成报告。

查看User Guide中的描叙,
The report is called "profiler-timestamp.log.xml", e.g. profile-20080422-182342.log.xml from April 22th 2008, at 18:23:42. The report is saved to the first available of these locations: "\Storage Card", "\SD Card", "\Temp", and "\". So if your device has an SD-Card you can get the report out of it that way, which is quite handy.
为此我还反编译了EQATECProfilerRuntime.dll来查看报告的输出路径,果然如它的User Guide里面描叙的
private static string[] s_ReportFileRoot = new string[] { @"\SD Card", @"\Storage Card", @"\Temp", @"\" };
但是结果还是很奇怪,我PDA上面明明有Temp目录,何况它的Demo能在Temp下生成,为啥我的目标程序就不能输出报告?难道目标程序还要什么需要设置的?

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-11 20:40 编辑过
 
另存  打印