我一直在阅读Wp8.1(XAML)应用程序是为Windows Phone 8.1创建应用程序的新方法,并且该代码可以高度重用于Windows 8.1桌面应用程序。
但是我有点担心,因为从联系人(WP8.1 XAML中的ContactManager)执行单个搜索比Silverlight对应的慢。
只需退回我的议程中的所有联系人(240封联系电子邮件,缩略图等...),我的Lumia 1520需要3秒钟;与Silverlight代码相同的操作需要0.7秒。
我有点害怕使用WP8.1制作手机应用,因为性能对我来说非常重要。使用Lumia 1520的触点,Lumia 535的相同测试分别需要7秒和1.5秒。
是否有关于使用何种项目的推荐?我觉得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
的帖子
答案 0 :(得分:1)
你在比较同样的事情吗?
在Silverlight版本中,您只能在完成处理程序中调用sw.Stop。
如果你真的想做一个很好的比较,你应该得到一个ETW追踪;那么你真的可以理解上升的是什么。
对于基于Metro XAML的解决方案,可能会有额外的互操作成本。但这似乎是未来的道路。
对于Silverlight,现有的API可能会更加完善。
您可能应该同时处理这两种解决方案,尽可能使可共享代码尽可能大,然后决定采用哪种方式。