信息
我正在尝试为Windows Phone创建一个快速加载的联系人应用程序。我遇到的最大问题是初始启动时间。默认人员中心启动相当快,而我创建的所有内容都需要3到12秒。
据我所知,在Windows Phone 8.1中有两种主要的方法来检索联系人信息。第一个是使用Silverlight,它将创建一个Contacts对象并进行搜索。第二个是使用WinRT,从ContactManager创建一个ContactStore并找到联系人。
我尝试了420个联系人的两种方法,并记录了时间(使用秒表对象),以便从下面的代码中检索联系人。
数据
为了收集这些结果,我在调试模式下运行了Lumia 1020.
Contacts cons = new Contacts();
cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(Contacts_SearchCompleted);
cons.SearchAsync(String.Empty, FilterKind.None, "Retrieve Contacts");
2456毫秒
ContactStore store = await ContactManager.RequestStoreAsync();
test = await store.FindContactsAsync();
contacts = test.ToList();
9715毫秒
问题
为什么Silverlight方法能够更快地检索联系人 比WinRT方法?什么基础组件阻碍了 WinRT方法的性能?
我能做些什么吗? 提高其性能(最好是WinRT,因为它 似乎是更具未来性的证据之一?)