博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  不管是在哪个平台的开发,性能是至关重要的,尤其是移动开发,用户最关心的是你的应用的响应速度其次才是创意。网上有很实用的工具叫EQATEC Profiler ,这是一个针对.NET平台的一个性能分析器,可以分析WP7 而面加载、执行的效率时间,不过针对 WP7有几点限制,最大的限制是其不支持XNA 开发的WP7程序,以下是其限制清单:

  • Only WP7 Silverlight apps are supported for now, not WP7 XNA apps
  • Constructors are not timed due to a WP7 IL-verifier problem
  • The profiler cannot at present take an automatic snapshot(快照) when the WP7 app closes, so you must take snapshots manually during the execution.
  • WP7 is very new technology; the APIs may change and potentially break the profiler. We'll strive(努力) to stay ahead and appreciate any WP7-feedback from you all.

下载地址:点击我

进入该网址,填写几个必要信息即可,他会把下载地址发到你邮箱,进入你的邮箱点击对应链接下载即可,不过下载速度,真他N的慢。下载完后,直接安装即可,不用配置。

好了,下面我们就用两段代码来测试它的分析效果吧。

要测试的页面效果如下:

点击按钮后,会执行一个方法,这里我们编写两个相同名称的方法,分不同时候加载,然后看加载后两个方法的执行效率如何,代码如下:

        void test()
        {
            
string a = "";
            
for (int i = 0; i < 10000; i++)
            {

                a 
+= i.ToString() + "\r\n";

            }
            tb_test.Text 
= a;
        }

 void test()
        {
            StringBuilder sb 
= new StringBuilder();
            
for (int i = 0; i < 10000; i++)
            {

                sb.Append(i.ToString() 
+ "\r\n");
            }
            tb_test.Text 
= sb.ToString();
        }

 好了,开始使用这个工具。

为了安全起见,我们先把代码编译一遍,确认没有报错才打开该工具。

该工具的起始界面如下 :

  如上图,App path:是你当前要测试的应用程序Bin 下面的Debug 目录,如果正确的话它会默认勾选上你的dll文件。之后点击右下角的Build按钮,显示Done 执编译通过:

通过后,旁边的Run app 按钮会可用,点击它启动设备,如果你是用的手机测试的话,不是用手机则选择Emulator选项,同时点击Run

注意,如果此时无法打开模拟器或者报当前资源正在使用,请把你打开的模拟器关掉,重新运行。确保一切没问题后,EQATEC Profile 会为我们打开一个模拟器,并导航到我们要APP界面。 

  点击上面的按钮,等程序执行完毕后,点击EQATEC Profile 的RUN选项卡,点击该界面上的Take snapshot 按钮,可以得到一份执行效率日志表,如下图:

第一次我们执行的是第一个代码的方法,选中我们生成的日志,点击右下方的VIEW按钮,可以查看一份详细的执行效率,如下 图:

如上图,MainPage里面的test 方法执行时间为3351MS,多么耗时的一个操作,换第二个方法试试:

看看mainPage里面的test 方法执行时间是多长,89MS,相差多大,多么神奇的东西,居家必备、杀人越货的的东西呀。。。

这个工具用到这里,己经感觉很强大了,最后一个选项卡是可以把两个日志拿起来对比,它会告诉你,你的第二个日志是好的还是差的,比如比第一个好会标志绿色字体,而差则会显示红色字体,如下图如示:

相同的文章可以参考:kylin 或者 Kadenchen ,希望对你有帮助。