Windows phone 7应用之代码性能分析工具——Profile.

前端时间断断续续的写了几篇关于Windows phone 7本地数据库访问文章. 最近在Window phone 7 APPStore上注册Apphub账号看到很多很有意思的小应用, 也结识几个专职做Wp7开发的国外DVP. 在最近几日的Skype交流中我发现一个他们身上很有意思的地方. 我大概总结一些列出来.

其中一个叫TG_Virus的WP7开发爱好者给我印象比较深, 他有一间和朋友一块开的开发工作室, 成员大都是以自由职业者或是WP7开发兴趣爱好者为主, 大概有8-10人左右,工作室平日会接一些第三方Andorid和Wp7应用开发项目, 其中主要以WP7为主. 我在他们展示的项目中看到很多关于WP7上很具有创意的应用,类似TG_Virus开发了一个GTranfer多语言翻译工具, 无论从UI设计的细节还是用户体验 或是实际功能实用性上 我觉得做得都很好. 当然他们也做了很多WP7在外接设备性能测试, 以及第三方工具扩展上在开发角度而言是这些极具开创性的.

A:在和TG_Virus聊天中给我感受最为深刻的是他们在开发上这种自由度, 无论是大到外在的大环境 还是小到个人爱好上, 我从未接触过这样把自己爱好和职业结合这么好的开发者, 回想自己也有些兀自颇为无奈的感叹吧, 我们这个行业能有多少人在职业和爱好的冲突中能够有如此自由的选择呢?……

B : 另外一个就是他们实际动手编程能力,很强, 为什么这么说 ?聊天能感到他们崇尚的是应用可用性,也就是说你只有先做出一个实际应用程序并且能熟练使用过才能有资格给它提出具体可行的建议. 如果自己的脑中有一个Idea 无论是好是坏他们做的第一步是用实际编程去先实现它并验证自己的想法. 所以他们最终出来WP7应用程序时经过多次验证和讨论结果. 在实用性上我觉得这样做法不失是一种很好的方式.   有问题快速分析 并立刻动手验证.这也许是一类人的习惯 对于软件编程来说 大繁至简 这样道理说了谁都知道 可谁又能亲手做到呢?

C:最后要说的是创意. 在这我要借用一句话 "知之者不如好之者,好之者不如乐之者"  当你爱好做一件事情 并以它为乐作为衡量自己的价值和意义时. 持之以恒的做下去 还有什么事情是做不好? TG-Virus不仅具有自己在嵌入式开发上经验 我觉得这个团队不仅依赖自己的经验 . 创意不是凭空而来的  更多源自他们是对移动平台开发某种执着而近乎苛刻热爱一群人吧. 至少他们的这种热情从某种程度上打动了我. 多少有些自愧不如吧

以上是我个人对于最近接触WP7开发者一点随想,希望给正在做WP7或即将打算进入这个领域开发的而倍感困惑的人一点点同行的参照和启迪.吧

说了这么多. 进入今天的主题: Windows Phone 7应用代码性能分析工具.

<1> Windows Phone 7应用代码性能分析工具

提到性能分析工具Profile. 相信很多做过并熟悉Java开发的同学应该不会陌生开源的FProfile,java开发时一个非常快的Profile.运行分析工具,利用BCEL和Log4来记录每个方法从开始执行到结束调用日志.实现的对 Java 虚拟机中的资源、应用程序对象等进行监试的一类工具.

2010-12-06_092145

同样.NEt平台中也有很多类似工具,那么对于.Net开发平台下WP7下 的应用程序如何实现代码性能分析呢.? 如何建立详细可循实际设备中环境代码性能运行参数 呢?. Profile为我们提供这种可能.

2010-12-06_093056

Profile是什么?那末基于Windows phone 7 应用程序Profile分析工具具有什么特点和优势呢? 请听我慢慢道来.

EQATEC Profiler是一款可以任何基于.Net平台的应用程序性能表现代码分析工具.当然因为.NEt自身版本和Silverlight版本更迭因素 具体的支持条件如下:

<1>支持完整的.NEt FrameWork 2.0[SP補丁包]或更高版本 相信應該很少人还在使用.NEt Frame Work 1.1版本吧.

<2>支持Windows Phone 7应用程序 无论是Silverlight或是XNa的应用程序.

<3>支持Silverlight 2.0版本或更高版本,Silverlight 1.0/1.1对于互操作性太低.不支持.

<4>支持NET CF 2.0 或更高版ben(WinCE, Windows Mobile)

<5>支持Xbox XNA, ASP.NET, .NET services

具有特点:

<A>:EQATEC Profiler是一个代码分析器,而不是一个内存分析器,它的目的保持并该进你的代码运行速度,而不是跟踪记录运行中对象和内存分配记录.

<B>使用方便,运行速度快.占用内存资源少.,

<C>提供事件探查API工具 更多详细信息参见.

以下以Windows  Phone 7应用程序为例 进行分析: 首先到官方填写注册信息 选择Free免费版本稍后再回复邮件找到下载链接进行下载.完成后进行安装:

2010-12-06_100308

解除防火墙本地初始化拦截:

2010-12-06_100322

快速安装:

2010-12-06_100354

安装完成后 运行EQATEC Profiler工具界面:

2010-12-06_100547

首先我们来建立一个分析项目.首先点击Browser按钮浏览一个已经成功建立的Windows phone 7的应用程序下的Debug目录下Bin文件夹,其实就是加载我们WP7源码的相关DLL文件,预览成功会在App Path实现,点击步骤2Build建立 会提示相关信息是否创建成功:

2010-12-06_101632

在分析中我们可以看见详细信息:

2010-12-06_101808

当前的项目类型是Windows  Phone 7,分别制定解析的文件时.Xap和生成的.DLL文件,在DLL找到相关8个可执行方法 建立成功后.运行我们应用程序:

2010-12-06_102117

提示请选择可用于当前Windows phone 7发布的设备, 目前手头上没有真机只能选择模拟器 点击Run继续运行:

SNAGHTML43fad16_thumb

我们发现目前工具自动跳转到第二个选项卡中Run,可以点击Take snapsshort任何时候获取当前Windows phone 7应用程序快照以方便稍后进行分析.并和不同版本间WP7 应用程序快照进行比对. 当把Windows Phone 7应用程序成功发布到设备或模拟器上时.再添加快照:

SNAGHTML44f7600_thumb

这样出现不同版本Windows Phone 7应用程序的快照 可以在View中快速的比对不同版本的快照执行方法发费的时间等详细信息:

SNAGHTML44212cb_thumb

这样一来我们可以清晰看到Windows phone 7应用程序在调用一个方法在不同版本快照下发费的时间 进行详细比较.通过模拟器在线进行数据操作可以发现在同一个版本下不同数据操作调用同一方法发费的时间进行比对:

image_thumb_1

you see!当我们在同一版本应用程序快照中进行不同数据操作时 同一方法调用产生不同数值我们可以在最后一个选项卡Compare中进行更加直观数据比对L:

SNAGHTML44212cb_thumb

如上我可以清晰看出相同的方法在不同数据操作下调用时间,EQATEC Profile工具为我们快捷分析Windows phone 7应用程序性能提供可能, 即使在开发过程随时可以调用执行,可以看看应用程序在执行性能方面是否需要改善地方. EQTEC 工具快速比对最为方便不过的.

至此目前关于EQATEC Profile工具分析Windows Phone 7应用程序性能简单示例如上 欢迎各位讨论.

原文地址:https://www.cnblogs.com/chenkai/p/1898450.html