在.Net Native编译的UWP应用中出现极差的性能表现

7
我在启用.Net Native Toolchain编译我的UWP应用时,遇到了非常糟糕的性能问题。我对运行代码(本地)进行了分析,发现依赖反射的方法(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。只有在我删除行时,它们才会按照我预期的开始出现。

这里有什么我没有看到的东西吗?该应用程序在没有 .Net Native 的情况下表现非常出色。如果我从头开始编写Default.rd.xml,并处理所有即将出现的MissingMetaDataExceptions,是否会有所帮助?


1
你解决了吗?因为我在我的应用程序中看到了相同的行为... - Jakub Krampl
有着相同的经历,对于我来说,在UWP商店应用程序中使用.NET本机功能使得开发体验迄今为止变得更糟。 - Johan Falk
到目前为止还没有成功。我已经删除了所有的行为痕迹,这有点帮助,但与非本机相比仍然很缓慢。 - Amenti
@JohanFalk 请查看此说明 - Jakub Krampl
@kubakista 感谢您提供的信息。这很可能是原因。我们正在使用MVVM Light。 - Amenti
1个回答

0

UWP工具在版本1.3.1中确实减轻了MvvmLight的性能影响。

但它仍然有点慢,所以我将我的IoC容器从Unity切换到AutoFac。这也有所帮助,但仍然不够好。最后,我不得不再次通过new创建我的ViewModels,而不使用IoC容器的Resolve。现在它非常流畅。我删除了所有的行为,这可能有所帮助,但如果没有重新实现它们,我不确定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接