31天學(xué)會(huì)Windows Phone 7開發(fā):調(diào)試技巧
在前幾篇文章中,我們討論了啟動(dòng)器和選擇器,在某些情況下沒有硬件調(diào)試是十分困難的。本文,我們來(lái)談?wù)務(wù){(diào)試,以及一些可供我們用來(lái)優(yōu)化應(yīng)用程序的工具。
Application.Current.Host.Settings
如果打開你的App.xaml文件,會(huì)看到有這樣的語(yǔ)句:
- // Show graphics profiling information while debugging.
- if (System.Diagnostics.Debugger.IsAttached)
- {
- // Display the current frame rate counters.
- Application.Current.Host.Settings.EnableFrameRateCounter = true;
- // Show the areas of the app that are being redrawn in each frame.
- Application.Current.Host.Settings.EnableRedrawRegions = true;
- // Enable non-production analysis visualization mode,
- // which shows areas of a page that are being GPU accelerated with a colored overlay.
- Application.Current.Host.Settings.EnableCacheVisualization = true;
- }
這段代碼打開了一些工具,當(dāng)你調(diào)試時(shí)它們可以提供大量的程序中正在發(fā)生的信息。下面是一個(gè)它們各自所做的事情的摘要:
EnableFrameRateCounter
這是***一個(gè)默認(rèn)被打開的工具,它允許你在程序運(yùn)行時(shí)監(jiān)視應(yīng)用程序的幀速率。你會(huì)注意到所有這些工具都被包含在一個(gè)if語(yǔ)句中(Debugger.IsAttached),這是因?yàn)槟悴⒉粫?huì)在最終的產(chǎn)品程序中使用它們。這些工具是專用于調(diào)試的。檢驗(yàn)調(diào)試器還是解鎖菜單,測(cè)試你的試用版程序這類事情的好方法。當(dāng)你調(diào)試時(shí)可以打開某些東西,而在其他狀態(tài)下不用去管它們。
電影業(yè)的標(biāo)準(zhǔn)是每秒24幀,你可能不需要這么多,除非是在你的程序中有復(fù)雜的動(dòng)畫或移動(dòng)。在Wikipedia上有一篇關(guān)于“視覺暫留”( Persistence of Vision,指當(dāng)人眼所看到的影像消失后,人眼仍能繼續(xù)保留其影像0.1-0.5秒左右的圖像的現(xiàn)象)的非常優(yōu)秀的文章。
EnableRedrawRegions
打開這個(gè)調(diào)試設(shè)置來(lái)看看在你的應(yīng)用程序中矩形會(huì)在哪兒被重繪。當(dāng)打開后你可以看到被重繪的內(nèi)容因?yàn)橹乩L區(qū)域是蘭色的。在獲得較低幀速率時(shí)這一點(diǎn)變得非常重要,你可能不知道為什么。這是因?yàn)閼?yīng)用程序?qū)⑵聊恢械囊徊糠诌M(jìn)行了重繪,即使它很不明顯。
EnableCacheVisualization
另一種重疊色,EnableCacheVisualization向你展示頁(yè)面中哪些區(qū)域使用了GPU加速功能。你可能會(huì)期待視頻和動(dòng)畫能充分利用它,但我想你會(huì)在GPU處理圖像的頻率上感到驚訝。
以上是一些在調(diào)試程序時(shí)可用的工具的技巧介紹。下一篇,我們來(lái)討論輸入范圍,以及我們所能使用的所有不同形式的屏幕鍵盤。
原作者:Jeff Blankenburg 譯者:金山崟霸
中文來(lái)源:http://www.cnblogs.com/porscheyin/archive/2010/12/22/1914082.html
英文來(lái)源:http://www.jeffblankenburg.com/2010/10/09/31-days-of-windows-phone-day-9-debugger-tips/