2011-12-19 71 views
3

如何減少我在windows phone中的啓動時間,影響應用程序啓動時間的所有約束都是如此。在運行市場測試工具包時,它有時會傳遞啓動時間結果,並且有時會失敗;其實我很努力地找出它失敗的地方,我如何識別地方問題發生,我嘗試使用性能分析工具,但沒有找到任何解決方案。 另外,有關此加載時間的另一個疑問是,該加載時間是如何計算的,它與第一頁的加載有關,還是檢查應用程序中的整個頁面。 我怎樣才能減少這個加載時間.....在Windows Phone 7中啓動時間

回答

5

找出花費的時間在哪裏。該技術相當簡單:

public partial class MyPage : PhoneApplicationPage 
{ 
    int m_t0; 

    public MyPage() { 
     m_t0 = Environment.TickCount; 
     MyListBox.Loaded += MyListBox_Loaded; 
    } 

    void MyListBox_Loaded(object sender, RoutedEventArgs e) { 
     Debug.WriteLine("\n---------> {0} msec", Environment.TickCount - m_t0); 
    } 
} 

上面的代碼測量頁面構建和加載列表框的瞬間之間的時間。這是您可以隨處應用的工具。

您可以從App.xaml.cs開始 - 它包含幾個有趣的條目,如構造函數和應用程序級別的事件,然後進入頁面級別並最終測量有趣的控件。如果你想測量xaml加載,測量在InitializeComponent()中花費的時間()(調試這個方法 - 這是相當有啓發性的)等等等等。

它可以幫助你理解應用程序的生命週期,頁面和控件加載。

最後,你應該有一個相當不錯的主意花在哪裏。然後你可以開始優化並最終使用Ku6opr描述的技術。如果你的谷歌說「windows phone 7 performance」,你可以得到更多的提示。

2

首先,從激活,構造函數,OnNavigatedTo和加載事件放出所有硬處理。如果可能,請進行延遲處理(例如,使用BackgroundWorker) 其次 - 減少裝配尺寸:將圖像設爲內容不是資源。如果可能的話減小圖像大小(根本不要在應用程序中使用圖像縮小),如果您有大量代碼大多數時間未使用,則可能會將項目分爲不同的程序集。

希望它有幫助

+0

「如果你有很多代碼沒有被大部分時間使用,可能會把你的項目分成不同的程序集」,這改變了我的列表框的負載,在改善初始加載時間方面幫助了我很多。我會看看這兩個。 – invalidusername