Windows Phone uygulamaları geliştirirken elimizin altında basit ama önemli performans ipuçlarının olması işimize yarar.
EnableFrameRateCounter özelliğini açmak
değerlerinin ekranda gözükmesini sağlar;
Bu değerler şu anlamlara gelir;
Render Thread FPS Ekran’ın güncellenme sıklığı. 60 fps civarı güncelleme hızı son kullanıcıya iyi bir deneyim sunacaktır, 30 fps ve üzeri ise kabul edilebilir bir deneyim sunacaktır. Ekran güncelleme hızı 30 fps altınaa düştüğünde bu değer kırmızı olacaktır, dikkat etmek lazım!
User Interface Thread FPS O esnada çalışan UI thread’in güncellenme sıklığı. Data Binding, animasyonlar ve property change notifications bu thread’de işletilirler. Eğer 15 fps altına düşerse bu değer kırmızı olacaktır, dikkat etmek lazım!
Texture Memory Usage Çalışan uygulamada kullanılan Texture’ların kullandığı grafik hafıza miktarı
Surface Counter Graphical Processing Unit (GPU) tarafından işlenecek yüzey miktarı
Intermediate Surface Counter Önbelleklenmiş bellekler dahil işlenecek yüzey miktarı
Screen Fill Rate Ekranda güncellenecek piksel miktarı. 1 değeri ekran çözünürlüğü kadar anlamına geliyor, örneğin 480x800. Eğer 1’in altına düşerse veya 2’nin üzerine çıkarsa kırmızı olur, dikkat etmek lazım!
App.xaml.cs dosyasında yeralan
Application.Current.Host.Settings.EnableFrameRateCounter = true;</pre>
satırı ile performans ipuçlarını ekranda göstermeye başlayabiliriz.
Uygulamanın son halini MarketPlace‘e göndermeden önce performans ipuçlarının ekranda gözükmediğinden emin olmamız gerekiyor.
Yukarıda ekranın bir parçasının gözüktüğü örnek uygulama için MainPage.xaml dosyasını aşağıdaki şekilde güncellemek gerekiyor;
<phone:PhoneApplicationPage x:Class="EnableFrameRateCounterTest.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <phone:LongListSelector Name="lstMessages" /> </phone:PhoneApplicationPage>
MainPage.xaml.cs dosyasında aşağıdaki değişiklikler yapılmalı;
public MainPage() { InitializeComponent(); var messageList = new List<string>(); for (int iLoop = 0; iLoop < 150; iLoop++) { messageList.Add("Long message line #" + iLoop); } lstMessages.ItemsSource = messageList; }
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484