Windows Phone 7 - 程序性能分析器
如何哪個平臺的開發,性能是至關重要的,尤其是移動開發,用戶最關心的是你的應用的響應速度其次才是創意。網上有很實用的工具叫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,相差多大,多么神奇的東西,居家必備、殺人越貨的的東西呀。。。
這個工具用到這里,己經感覺很強大了,最后一個選項卡是可以把兩個日志拿起來對比,它會告訴你,你的第二個日志是好的還是差的,比如比第一個好會標志綠色字體,而差則會顯示紅色字體,如下圖如示: