Artykuły

A A A
Drukuj Ekportuj do PDF
Opublikowane: 2011.11.17 19:20 | Łukasz Arciszewski | Aktualizacja: 2011.11.17 19:19

Dzień 9 - "31 Days with Windows Phone"

W tym artykule zostaną omówione niektóre narzędzia debugowania.

W ostatnich artykułach rozmawialiśmy o Launcherach oraz Chooserach. W niektórych przypadkach debugowanie tych narzędzi jest utrudnione bez posiadania fizycznego urządzenia. W tym artykule będę mówił o debugowaniu oraz niektórych narzędziach, które mamy do dyspozycji w celu optymalizacji.

Application.Current.Host.Settings

Jeśli otworzysz plik App.xaml to zauważysz tam podobny kod:

// 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; 
}


Ta sekcja kodu umożliwia włączenie paru narzędzi, które włączają się podczas debugowania. Dają one nam wiele informacji o tym, co się dzieje w trakcie działania Twojej aplikacji. Oto krótki przegląd tego, co każdy z elementów robi:

EnableFrameRateCounter

To jest jedyna opcja, która jest włączona domyślnie i umożliwia ona monitorowanie częstotliwości klatek programu, kiedy jest on uruchomiony. Można zauważyć, że każde z narzędzi jest dodane tylko, jeśli opcja Debugger.IsAttached jest włączona. Dlaczego tak jest? Myślę, że po prostu nikt z nas nie chciałby, aby wiadomości debugera były włączone w finalnej aplikacji. Są to narzędzia przeznaczone do debugowania. Zauważ, że debuger to także świetny sposób na odblokowanie menu, testowanie wersji demo itp. I to daje nam możliwość, że niektóre rzeczy odblokowane są tylko, gdy debuger jest włączony.

Miejmy na uwadze, że standardem dla przemysłu filmowego jest odtwarzanie z prędkością 24 klatek na sekundę. Prawdopodobnie nie będziesz wychodził ponad to, chyba, że tworzysz skomplikowane animacje i ruch w aplikacji. Na Wikipedii jest wspaniały artykuł Persistence of Vision”.

 

EnableRedrawRegions

Gdy włączysz tą opcję w debugerze, będziesz mógł zobaczyć jak i gdzie kwadraty będą przerysowywane. Możesz zobaczyć, co jest rysowane, ponieważ przerysowany region jest kolorowany na niebiesko.

Może to być niezwykle ważne, gdy zauważysz, że aplikacja działa z małą ilością klatek na sekundę i nie potrafisz zrozumieć dlaczego. Jest wysokie prawdopodobieństwo, że aplikacja przerysowuje pewien region nawet wtedy, gdy nie jest to oczywiste.

 

EnableCacheVisualization

Kolejna kolorowa nakładka pokazuje obszary strony aplikacji, które są akcelerowane przez procesor graficzny. Pewnie myślisz, że raczej ciężko, aby wykorzystać GPU w wideo i animacjach, ale zapewne zaskoczysz się tym jak często grafika może być wyświetlana przez GPU.

Załączniki:

Komentarze 0 Masz uwagi do tej strony? Napisz

Dodaj komentarz

avatar

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Autor Łukasz Arciszewski
avatar
 

Załóż konto
CodeGuru to miejsce dla każdego programisty. Przez lata portal rozwijany był siłami społeczności i to właśnie społeczność programistów jest tutaj najważniejsza. CG od wielu lat gromadzi wokół siebie coraz większą grupę pasjonatów. Warto być jej częścią!

Dowiedz się więcej o CodeGuru

Geek Club - Windows Phone

 

MetroOne

Idź na górę strony