天天看點

Windows phone 7應用之代碼性能分析工具——Profile

其中一個叫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應用代碼性能分析工具.

<a href="http://blog.51cto.com/attachment/201201/211116245.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201201/211126153.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201201/211137880.png" target="_blank"></a>

Profile是什麼?那末基于Windows phone 7 應用程式Profile分析工具具有什麼特點和優勢呢? 請聽我慢慢道來.

EQATEC Profiler是一款可以任何基于.Net平台的應用程式性能表現代碼分析工具.當然因為.NEt自身版本和Silverlight版本更疊因素 具體的支援條件如下:

&lt;1&gt;支援完整的.NEt FrameWork 2.0[SP補丁包]或更高版本 相信應該很少人還在使用.NEt Frame Work 1.1版本吧.

&lt;2&gt;支援Windows Phone 7應用程式 無論是Silverlight或是XNa的應用程式.

&lt;3&gt;支援Silverlight 2.0版本或更高版本,Silverlight 1.0/1.1對于互操作性太低.不支援.

&lt;4&gt;支援NET CF 2.0 或更高版ben(WinCE, Windows Mobile)

&lt;5&gt;支援Xbox XNA, ASP.NET, .NET services

具有特點:

&lt;A&gt;:EQATEC Profiler是一個代碼分析器,而不是一個記憶體分析器,它的目的保持并該進你的代碼運作速度,而不是跟蹤記錄運作中對象和記憶體配置設定記錄.

&lt;B&gt;使用友善,運作速度快.占用記憶體資源少.,

<a href="http://blog.51cto.com/attachment/201201/211146339.png" target="_blank"></a>

解除防火牆本地初始化攔截:

<a href="http://blog.51cto.com/attachment/201201/211159686.png" target="_blank"></a>

快速安裝:

<a href="http://blog.51cto.com/attachment/201201/211229576.png" target="_blank"></a>

安裝完成後 運作EQATEC Profiler工具界面:

<a href="http://blog.51cto.com/attachment/201201/211238277.png" target="_blank"></a>

首先我們來建立一個分析項目.首先點選Browser按鈕浏覽一個已經成功建立的Windows phone 7的應用程式下的Debug目錄下Bin檔案夾,其實就是加載我們WP7源碼的相關DLL檔案,預覽成功會在App Path實作,點選步驟2Build建立 會提示相關資訊是否建立成功:

<a href="http://blog.51cto.com/attachment/201201/211246126.png" target="_blank"></a>

在分析中我們可以看見詳細資訊:

<a href="http://blog.51cto.com/attachment/201201/211255131.png" target="_blank"></a>

目前的項目類型是Windows Phone 7,分别制定解析的檔案時.Xap和生成的.DLL檔案,在DLL找到相關8個可執行方法 建立成功後.運作我們應用程式:

<a href="http://blog.51cto.com/attachment/201201/211304638.png" target="_blank"></a>

提示請選擇可用于目前Windows phone 7釋出的裝置, 目前手頭上沒有真機隻能選擇模拟器 點選Run繼續運作:

<a href="http://blog.51cto.com/attachment/201201/211316365.png" target="_blank"></a>

我們發現目前工具自動跳轉到第二個頁籤中Run,可以點選Take snapsshort任何時候擷取目前Windows phone 7應用程式快照以友善稍後進行分析.并和不同版本間WP7 應用程式快照進行比對. 當把Windows Phone 7應用程式成功釋出到裝置或模拟器上時.再添加快照:

<a href="http://blog.51cto.com/attachment/201201/211326777.png" target="_blank"></a>

這樣出現不同版本Windows Phone 7應用程式的快照 可以在View中快速的比對不同版本的快照執行方法發費的時間等詳細資訊:

<a href="http://blog.51cto.com/attachment/201201/211338236.png" target="_blank"></a>

這樣一來我們可以清晰看到Windows phone 7應用程式在調用一個方法在不同版本快照下發費的時間 進行詳細比較.通過模拟器線上進行資料操作可以發現在同一個版本下不同資料操作調用同一方法發費的時間進行比對:

<a href="http://blog.51cto.com/attachment/201201/211348443.png" target="_blank"></a>

you see!當我們在同一版本應用程式快照中進行不同資料操作時 同一方法調用産生不同數值我們可以在最後一個頁籤Compare中進行更加直覺資料比對L:

<a href="http://blog.51cto.com/attachment/201201/211359597.png" target="_blank"></a>

如上我可以清晰看出相同的方法在不同資料操作下調用時間,EQATEC Profile工具為我們快捷分析Windows phone 7應用程式性能提供可能, 即使在開發過程随時可以調用執行,可以看看應用程式在執行性能方面是否需要改善地方. EQTEC 工具快速比對最為友善不過的.

至此目前關于EQATEC Profile工具分析Windows Phone 7應用程式性能簡單示例如上 歡迎各位讨論.

本文轉自chenkaiunion 51CTO部落格,原文連結:http://blog.51cto.com/chenkai/764101