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