2014-09-01 39 views
15

我一直在閱讀Wp8.1(XAML)應用程序是爲Windows Phone 8.1創建應用程序的新方法,並且該代碼對於Windows 8.1桌面應用程序具有高度可重用性。WP SilverLight 8.1 vs WP 8.1(XAML)優點和缺點

但是我有點擔心,因爲從聯繫人(WP8.1 XAML中的聯繫人管理器)執行單個搜索比Silverlight對手慢。

從我的議程(240個聯繫人,電子郵件,縮略圖等等)中恢復所有聯繫人需要3秒鐘,我的Lumia 1520; Silverlight代碼的相同操作需要0.7秒。

我有點害怕使用WP8.1來製作手機應用程序,因爲這對我來說性能非常重要。 Lumia 535的相同測試分別需要7秒和1.5秒的時間,使用我的Lumia 1520的觸點。

是否有關於使用什麼類型項目的建議?我覺得Silverlight應用程序(顯然)專注於Windows Phone並使用所有手機的功能。

我錯了?我是否通過選擇windows phone silverlight進入棄用道路?

注:用於執行搜索的代碼是從MSDN的例子之一...

WP8.1 XAML(諾基亞Lumia 1520,3秒獲得240個縮略圖,郵件帳戶,通訊錄等...)

ContactStore agenda = await ContactManager.RequestStoreAsync(); 
Stopwatch sw = new Stopwatch(); 
IReadOnlyList<Windows.ApplicationModel.Contacts.Contact> contacts = null; 
sw.Start(); 
contacts = await agenda.FindContactsAsync(); 
sw.Stop(); 
txtblock1.Text = sw.ElapsedMilliseconds; 

WP的Silverlight 8.1(諾基亞Lumia 1520,0,7秒獲得240個縮略圖,郵件帳戶,通訊錄等...)

Contacts agenda = new Contacts(); 
//Stopwatch is declared at class level so its accessible in ListContacts_SearchCompleted Callback 
sw.Start(); 
agenda.SearchCompleted+= ListContacts_SearchCompleted; 
agenda.SearchAsync(String.Empty, FilterKind.None, null); 
//sw.Stop() and print ElapsedMilliseconds in ListContacts_SearchCompleted callback 

編輯:在論壇上創建此帖的帖子https://social.msdn.microsoft.com/forums/windowsdesktop/en-us/1e0accaf-b2f8-4d68-b5ec-dc6af6351633/findcontactsasync-takes-long-time?referrer=http://social.msdn.microsoft.com/forums/windowsdesktop/en-us/1e0accaf-b2f8-4d68-b5ec-dc6af6351633/findcontactsasync-takes-long-time?referrer=http://social.msdn.microsoft.com/forums/windowsdesktop/en-us/1e0accaf-b2f8-4d68-b5ec-dc6af6351633/findcontactsasync-takes-long-time?forum=wpdevelop

+0

您是在1520上運行Developer Preview還是實際發佈的版本/ Cyan? – 2014-09-01 10:38:00

+0

發佈版本。事情是,在我嘗試過的所有設備中,代碼似乎需要4倍的時間才能返回與Silverlight相同的查詢。 – Arys 2014-09-01 11:06:34

+0

@Arys你如何衡量時間?當你開始/停止測量?數據是否顯示在某種列表中? – Romasz 2014-09-01 11:29:40

回答

1

你比較相同的東西嗎?

在Silverlight版本中,只能在完成處理程序中調用sw.Stop。

如果你真的想做一個好的比較,你應該得到一個ETW跟蹤;那麼你可以真正明白髮生了什麼。

對於基於Metro XAML的解決方案,可能會存在額外的互操作成本。但那似乎是未來的道路。

對於Silverlight,現有的API可能會更加精細的perf。

也許你應該在兩個解決方案上工作,儘可能地使可分享的代碼,然後決定採取哪種方式。

+0

我在比較相同,並且是在完成處理程序中停止秒錶。我發現使用較新的操作系統版本可以提高XAML版本的性能。一旦我有更多的數據並再次比較表現,會寫出研究結果。 – Arys 2014-09-29 10:30:58

+0

對不起,延遲迴復。我已經使用不同的Windows Phone 8.1版本進行了測試和比較,目前,在XAML中訪問聯繫人的速度比Silverlight項目慢。 – Arys 2014-10-30 17:33:09

+0

@Arys你有這個話題的任何更新?在windows phone 8.1 xaml應用程序中獲取聯繫人時,我也面臨嚴重的延遲。 – asitis 2014-12-22 06:55:17