【问题标题】:Why is UWP 10 development so slow?为什么 UWP 10 开发如此缓慢?
【发布时间】:2015-09-29 23:28:36
【问题描述】:

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

我无法在 Google 上找到有关此体验的任何提及,这让我想知道我的设置中是否存在将活动扳手扔进 UWP 开发人员的东西。

有没有人遇到过这种情况,或者知道有什么方法可以加快开发速度?

更新

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

【问题讨论】:

  • 你的 VS 安装中有插件吗?您是否尝试过重置 VS 配置?是否有任何防病毒或其他繁重的后台进程正在运行?
  • “通用 Windows 平台” - 微软败下阵来.....
  • 我发现它需要 FOREVER 来构建发布...
  • @ARandomGuy 因为 .NET Native。
  • @igrali 你有解决方案吗?

标签: windows visual-studio-2015 uwp


【解决方案1】:

只有我的 2 美分,但我最近发现在处理 UWP 项目时存在一个大问题。

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

但是最近在 Visual Studio 2015 Update 2 (With W10) 中工作,我的性能非常缓慢,界面非常滞后,构建、调试、XAML,一切都很慢。

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

我将我的启动项目设置在解决方案中的其他项目上,而不是 UWP 和 WP8。如果我需要调试,我在解决方案资源管理器中右键单击启动它们,然后调试。

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

【讨论】:

  • 这是迄今为止最好的解决方法,可以无缝运行。现在只有微软能解决这个问题......
【解决方案2】:

令人着迷……简直令人着迷。

在主 UWP 应用的构建属性上关闭“使用 .NET Native 工具链编译”。 UWP 库似乎不提供本机工具链选项。

我一直在解决为什么我的文件解析应用程序执行(不是构建)的时间大约是发布版本的两倍而不是调试版本的问题。完全与应该发生的事情相反。我也碰巧注意到完成发布构建的时间很长,但这暂时是次要问题。

如果您在完全重建期间观察输出窗口,您会注意到您拥有的任何库都将像您习惯的那样快速构建。然后主应用程序将陷入困境 - 很多。

检查项目的构建属性并注意只有主 UWP 应用具有“使用 .NET Native 工具链编译”选项。图书馆没有。此外,默认情况下,只有发布版本启用它。调试版本没有。果然,在发布构建时关闭它,发布构建开始与调试构建一样快地完成。

然后奇怪的奇怪......我的 UWP 应用发布版本现在运行速度比调试版本快大约 10%,而它过去的运行速度几乎是原来的两倍。

这完全违反直觉。原生构建应该与非原生构建一样快,甚至快一点。 Visual Studio 下的编译器当然可以选择投入更多精力来优化处理器的构建。

我想知道是否还有其他关于本机构建工具问题的发布,以及是否有解释。如果构建工具在尝试针对特定的本机处理器进行优化时变得更加困难,我可以完全理解缓慢的构建时间。然而,本机代码运行速度比非本机代码慢得多的事实完全违反直觉。在这种情况下,MSFT 会费心发布本机构建工具似乎没有任何意义,这导致人们怀疑这些工具是否被错误地使用或其他一些误解正在酝酿之中。

【讨论】:

  • 我还发现了这种令人头疼的行为,在 Debug 与 Release 构建之间具有运行时性能。我有一个 GridView 页面,使用 Debug 构建渲染需要 3 秒,而使用 Release 构建需要 5 秒。但是,我可能是错的,但我相信如果您将应用程序放在 Windows 应用商店中,它最终会使用 .NET Native 工具链进行编译
  • 我似乎记得在某处读过,如果您依赖使用表达式的代码(例如 JSON.NET 之类的东西),那么您的发布代码最终可能会变慢,原因是它们不能像使用非原生构建那样 JITted,而是必须对其进行解释。
【解决方案3】:

2016 年 10 月更新

截至Visual Studio 2015 Update 3,此答案不再相关。微软在将开发环境恢复到稳定状态方面做得很好。尽管我目前在使用 XAML 设计器时遇到问题,但编码和构建要快得多,也更有趣。我希望在 XAML 设计器中发现的大多数使人衰弱的问题在下一个Visual Studio 15 中得到解决。


有没有人遇到过这种情况

是的

我团队中的每个人都因为 UWP 而脱发。我几乎确信微软希望我讨厌 C# 和 XAML。

...或者知道加快开发速度的方法吗?

我正在将我的应用程序移植到 UWP,但我无法终止对 Win8 的支持。所以,我在同一个解决方案中有两个项目。对我来说,为了加快速度,我将构建配置修改为“Debug-UWP”和“Release-UWP”,以在使用 Windows 10 应用程序时排除 Win8 应用程序和项目。这只是一个小小的缓解。构建仍然是痛苦的经历。

还有

您可以禁止 NuGet 在每次构建时恢复包。转到 选项 > NuGet 包管理器 并取消选中“在 Visual Studio 中构建期间自动检查丢失的包”。这也是次要的,但每一点都有帮助。

【讨论】:

  • 虽然没有提供解决方法(在这一点上我认为没有办法让事情变得更快),但至少让我知道我并不孤单在缓慢的 UWP 开发中。
  • @ARandomGuy,我也喜欢它,相信我。我对它寄予厚望。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 2011-05-03
  • 2017-09-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多