WP7 App性能优化(8):检测应用程序性能(Ⅰ)
有很多方法監視應用程序的性能并檢測性能問題。檢測內存占用是其中之一。也可以啟用重繪區域著色和視圖緩存,從而可視化的監視相關資源的使用情況。也可以打開幀頻計數器使其在Windows Phone 7模擬器中可用。幀頻計數器使你可以監視應用程序很多不同方面的性能。以下討論了如何使用這些功能。
?
監視內存占用
應當在應用程序中監視內存占用。這可以通過在程序中不同的地方調用GetValue(String)方法實現。以下表格列出了一些可以傳遞給GetValue方法做參數的屬性名及其描述。獲得更多檢測內存使用的信息,請參考Device Information for Windows Phone。
| DeviceTotalMemory | 設備使用的總內存 |
| ApplicationPeakMemoryUsage | 當前應用程序可用的最大內存 |
| ApplicationCurrentMemoryUsage | 當前應用程序已用的內存 |
應用程序不應當占用90MB以上的內存,除非Windows Phone 的物理RAM大于256MB。如果應用程序消耗了過多的內存,應當跟蹤應用程序中使用的主要對象的數目,例如頁面和用戶控件。如果出現了比預期的過多的未銷毀實例,應調查為何這些實例沒有被適時釋放。
?
啟用重繪區域
可以通過在Windows Phone 7模擬器中啟用重繪區域可視化的觀察應用程序中哪些區域重繪了。在頁面的構造函數中,將P:System.Windows.Interop.Settings.EnableRedrawRegions屬性設置為true。也可以通過當前應用程序設置的這個屬性來訪問,如下代碼所示。
Application.Current.Host.Settings.EnableRedrawRegions = true;現在,當程序運行中某個區域完成繪制時,就會有一個顏色陰影來標識。著色的區域標志著是由CPU而不是GPU來處理繪制的。當CPU用于繪制時,稱為軟件繪制。軟件繪制是正常的,所有元素首次呈現都是通過軟件繪制,但是應當避免過分的軟件繪制。如果程序中包含每一幀都改變的閃爍顏色區域,應考慮對這些元素使用位圖緩存。關于啟用位圖緩存的更多信息,請參考本系列博文中的《Opacity屬性與位圖緩存》。
?
啟用視圖緩存
通過啟用視圖緩存,可以可視化的看到哪些圖形表層正在使用中,并被傳遞給構圖線程,然后傳遞給GPU。要實現它,在頁面構造函數中將P:System.Windows.Interop.Settings.EnableCacheVisualization屬性設置為true。當然也可以通過當前應用程序設置的這個屬性訪問,如下代碼所示。
Application.Current.Host.Settings.EnableCacheVisualization = true;當啟用視圖緩存時,程序中的每一個圖形表層都會有加一個藍色并應用透明。這樣就可以看到應用程序的中的不同表層及其重疊。最深色的藍色陰影表示多個表層在這兒彼此重疊。在高填充率的作用下,也可以看到應用程序中的隱藏對象。Windows Phone 7中的Silverlight與其他平臺的Silverlight在視圖緩存上稍有不同。其他平臺上的視圖緩存,著色區域表示的是Silverlight創建的、非開發者明確緩存的表層。然而,Windows Phone 中的視圖緩存,著色區域表示傳送給GPU構圖的表層。這很對監視而言是很重要的,因為這使得應用程序視圖變得更加復雜,甚至超越GPU的能力。
當啟用視圖緩存時,GPU必須要承擔一些額外工作,這會影響幀頻,所以不應當在使用視圖緩存時監視幀頻。
轉到:WP7 App性能優化(0):索引頁
轉載于:https://www.cnblogs.com/magicboy110/archive/2010/12/26/1917023.html
總結
以上是生活随笔為你收集整理的WP7 App性能优化(8):检测应用程序性能(Ⅰ)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 账户管理办法
- 下一篇: 云计算中HMI的三大优点