有趣... 真是有趣。

在主 UWP 应用程序的构建属性中关闭“使用 .NET Native 工具链编译”选项。UWP 库似乎没有提供本地工具链选项。

我正在解决一个问题,即为什么我的文件解析应用程序的执行时间(而不是构建时间)在发布版本中比调试版本慢了约一倍。完全与预期相反。我还注意到发布版本完成所需的时间很长,但那只是一个次要问题。

如果您观察完整重建过程中的输出窗口,您会发现您拥有的任何库都将像您习惯的那样快速构建。然后主应用程序将成为拖延构建的主要原因 -- 非常缓慢。

检查项目的构建属性,并注意只有主 UWP 应用程序具有“使用 .NET Native 工具链编译”选项。库没有此选项。默认情况下,只有发布版本启用它。调试版本则没有。果然,在发布版本上关闭该选项,发布版本就可以像调试版本一样快速完成。

然后,最奇怪的是... 我的 UWP 应用程序发布版本现在运行速度比调试版本快约 10%,尽管以前运行速度几乎慢了一倍。

这一切都非常违反直觉。本地构建应该与非本地构建同样快,甚至可能更快一些,因为 Visual Studio 下的编译器肯定可以更加努力地优化处理器的构建。

我想知道是否还有其他关于本地构建工具问题的文章,并且是否有解释。如果构建工具在尝试针对特定的本地处理器进行优化而吃掉了很多更多的资源,则我完全可以理解慢的构建时间。然而,本地代码的运行速度比非本地代码慢得多这一点完全违反直觉。看起来 MSFT 不会在这种情况下发布本地构建工具,这让人想知道是否错误地使用了工具或者存在某种误解。