Чрезвычайно низкая производительность в приложении UWP, скомпилированном с помощью .Net Native

Я сталкиваюсь с очень плохой производительностью, когда компилирую свое приложение UWP с включенной .Net Native Toolchain.

Я профилировал работающий код (собственный), и кажется, что виноваты методы, основанные на отражении (Unity IoC, Behaviors-SDK, Linq, sqlite-net).

Я пока использую Default.rd.xml.

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
   <Application>
     <Assembly Name="*Application*" Dynamic="Required All" />
   </Application>
</Directives>

У меня пока нет MissingMetaDataExceptions. Они запускаются, как я ожидал, только когда я удаляю строку Application.

Я что-то здесь не вижу? Приложение имеет очень хорошую производительность без .Net Native. Помогает ли это, если я напишу Default.rd.xml с нуля, пропуская все возможные исключения MissingMetaDataExceptions?


person Amenti    schedule 29.01.2016    source источник
comment
Вы это решили? Поскольку я вижу такое же поведение в своем приложении ...   -  person Jakub Krampl    schedule 25.02.2016
comment
Имея такой же опыт, использование .NET native в приложениях магазина UWP пока что сильно ухудшило для меня опыт разработки.   -  person Johan Falk    schedule 26.02.2016
comment
Пока безуспешно. Я удалил все следы поведения, что немного помогло, но оно все еще вялое по сравнению с не-родным.   -  person Amenti    schedule 26.02.2016
comment
@JohanFalk Просмотрите это объяснение   -  person Jakub Krampl    schedule 07.03.2016
comment
@kubakista Спасибо за информацию. Это вполне может быть причиной. Мы используем MVVM Light.   -  person Amenti    schedule 09.03.2016


Ответы (1)


Инструменты UWP в версии 1.3.1 действительно уменьшили влияние MvvmLight на производительность.

Это все еще было медленным, поэтому я переключил свой IoC-контейнер с Unity на AutoFac. Это тоже немного помогло, но все равно было недостаточно. В конце концов, мне пришлось снова прибегнуть к созданию моих ViewModels через new без использования Resolve IoC-Container. Теперь это очень быстро. Я удалил все варианты поведения, это могло бы помочь, но я не уверен насчет этого, если бы не реализовал их снова.

person Amenti    schedule 13.04.2016