2014-09-01 7 views
15

Я читал, что приложения Wp8.1 (XAML) - это новый способ создания приложений для Windows Phone 8.1, а код очень многократно используется для приложений Windows 8.1 для настольных компьютеров ,WP SilverLight 8.1 против WP 8.1 (XAML) за и против

Но я немного обеспокоен, так как выполнение одного поиска из контактов (ContactManager в WP8.1 XAML) намного медленнее, чем у Silverlight.

Простое возвращение всех контактов из моей повестки дня (240 контактов с электронными письмами, эскизами и т. Д.) Занимает 3 секунды в моей Lumia 1520; такая же операция с кодом Silverlight занимает 0,7 секунды.

Я немного боюсь использовать WP8.1 для создания приложений для телефона, потому что производительность для меня очень важна. Тот же тест на Lumia 535 занимает 7 секунд и 1,5 секунды, соответственно, с контактами от моей Lumia 1520.

Есть ли рекомендация о том, какой проект использовать? Я чувствую, что приложения Silverlight (очевидно) сосредоточены в Windows Phone и используют все возможности телефона.

Я ошибаюсь? Я направляюсь в дорогу с устаревшим видом, выбирая серебристый телефон Windows?

Примечание: Код, используемый для выполнения поиска является одним из примеров MSDN ...

WP8.1 XAML (Nokia 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 (Nokia 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 

EDIT: Сообщение, созданное в форумах относительно этого 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

Запускаете ли вы Предварительный просмотр разработчика или фактическую выпущенную версию/Cyan на 1520? –

+0

Выпущена версия. Дело в том, что во всех устройствах, которые я пробовал, для кода, похоже, потребуется 4 раза времени, чтобы вернуть тот же запрос, что и экземпляр Silverlight. – Arys

+0

@Arys Как вы измеряете время? Когда вы начинаете/останавливаете измерение? Рассматриваются ли данные в каком-то списке? – Romasz

ответ

1

Вы сравниваете то же самое?

В версии Silverlight вы можете вызвать sw.Stop только в обработчике завершения.

Если вы действительно хотите провести хорошее сравнение, вы должны получить трассировку ETW; то вы действительно можете понять, что происходит.

Для решения на базе Metro XAML может потребоваться дополнительная стоимость взаимодействия. Но это, кажется, будущий путь.

Для Silverlight существующий API может быть более полированным для перфорации.

Возможно, вам следует работать над обоими решениями, сделать как можно более общий код, а затем решить, какой способ взять.

+0

Я сравнивал то же самое, и да останавливал секундомер в обработчике завершения. Я видел улучшение производительности для версии XAML с новыми версиями ОС. Будут писать выводы, как только у меня появится больше данных и сравним производительность. – Arys

+0

Извините за поздний ответ. Я тестировал и сравнивал различные версии Windows Phone 8.1, и на данный момент доступ к контактам в XAML медленнее, чем проект Silverlight. – Arys

+0

@ У вас есть какие-либо обновления по этой теме? Я также сталкиваюсь с серьезной задержкой при получении контактов в приложении xaml windows phone 8.1. – asitis

Смежные вопросы