为什么 UWP 10 的开发速度如此之慢?

18

还有其他人在使用VS 2015编写通用Windows平台10应用程序时,遇到非常缓慢的开发体验吗?与类似的基本WPF应用程序相比,编译、调试甚至在窗口之间切换都非常缓慢。

我在谷歌上没有找到任何提到这种经验的信息,这让我想知道是否有某些设置干扰了我的UWP开发。

有人经历过这种情况,或知道如何加快开发速度吗?

更新

这个问题的背景是在DEBUG模式下编译,而不是RELEASE(.NET native)模式。


你的VS安装中有任何插件吗?你尝试过重置VS配置吗?是否有任何反病毒软件或其他占用大量后台资源的进程正在运行? - Dai
通用 Windows 平台 - 微软正在失去方向...... - Mitch Wheat
1
我发现在发布模式下构建需要很长时间... - James Esh
由于 .NET Native,@ARandomGuy。 - Igor Ralic
@igrali,你有解决方案吗? - James Esh
3个回答

5

我个人认为,最近在进行UWP项目时遇到了一个大问题。

我正在使用Xamarin开发我的项目,以便在Android / iOS / WP8和UWP上兼容。

但是最近在Visual Studio 2015 Update 2(带W10)中工作时,我的性能非常缓慢,界面也很卡顿,构建、调试、XAML等所有操作都非常缓慢。

然后我发现了一些非常糟糕的事情:如果您将UWP项目设置为解决方案的启动项目,则Visual Studio 2015会变得非常缓慢!我不知道真正的问题是什么,但这对我来说确实是一个真正的问题!

我将我的启动项目设置为解决方案中的另一个项目,而不是UWP和WP8。如果我需要调试,我会在解决方案资源管理器中使用右键单击,然后选择调试。

从那时起,VS2015对我来说就没有性能问题了。


这是目前为止最好的解决方法,它运行得非常顺畅。现在只要微软能够修复这个问题就好了... - silencedmessage

4

有趣... 真是有趣。

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

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

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

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

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

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

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


我也发现了在调试版和发布版之间的运行时性能方面存在令人费解的行为。我有一个GridView页面,在Debug版本中需要3秒钟才能呈现,在Release版本中需要5秒钟。然而,我可能错了,但我认为如果您将应用程序放入Windows Store中,最终它将使用.NET Native工具链进行编译。 - BCA
我记得在某个地方读到过这样的内容:如果你依赖于使用表达式(例如JSON.NET)的代码,那么你的发布代码可能会变得更慢,原因是它们不能像非本机构建一样被JIT编译,而必须被解释。 - Mike Goatly

2

2016年10月更新

随着Visual Studio 2015 Update 3的发布,本回答已不再适用。微软在将开发环境恢复到稳定状态方面做得非常出色。尽管我目前在XAML设计器方面存在问题,但编码和构建速度更快,更加愉悦。我希望下一个Visual Studio 15中解决了大部分XAML设计器中的问题。


有人遇到这个问题吗?

是的

我们团队的每个人都因UWP而掉发。我几乎相信微软想让我讨厌C#和XAML。

...或知道任何加快开发的方法吗?

我正在将我的应用程序移植到UWP,但我不能终止对Win8的支持。因此,我在同一解决方案中拥有两个项目。为了加快速度,我修改了构建配置以排除Win8应用程序和项目,当我使用Windows 10应用程序时。这只是一种缓解。构建仍然是痛苦的经历。

另外

您可以禁用NuGet在每次构建时恢复软件包。转到选项>NuGet程序包管理器并取消选中“在Visual Studio中的构建期间自动检查缺少的软件包”。这也只是一点点帮助。


虽然目前没有提出解决方法(我认为现在没有办法使事情更快),但至少你让我知道我不是唯一在开发缓慢的UWP应用程序。谢谢! - BCA
@ARandomGuy,我也很喜欢它,相信我。我对它充满了希望。 - Laith

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