【译】Visual Studio 2022 - 17.10 性能增强

我们很高兴地宣布 Visual Studio 2022 的最新更新,它为您带来了 IDE 各个领域的一系列性能增强。在这篇博客中,我们将重点介绍17.10版本中一些最显著的改进,比如更快的 Windows Forms 设计器加载、更快的 Razor 着色、更快的解决方案加载以及更少的 dll 开销。

Windows Forms 设计器加载速度

我们从开发人员和合作伙伴那里听说,在.NET Core 3.1 及更高版本的项目中,Windows Forms 设计器的加载速度可能很慢。在这些情况下,设计器被加载到与 Visual Studio 一起运行的单独进程中。加载此进程的时间可能很长,具体取决于项目的依赖项。当在某些情况下需要重新启动此设计器进程时,例如当项目引用更改时,影响会加重。为了改善设计器重新启时间,我们优化了如何确定优先级并将程序集加载到设计器进程中。

我们很高兴地宣布,这些增强已经产生了显著的设计时性能改进,在典型的业务应用程序中,从30%到惊人的50%不等。我们鼓励您探索更新后的设计器,并通过 VS 反馈渠道分享您宝贵的反馈意见,以便我们能够继续改进 Windows Forms 设计器的性能。

Razor/C# 着色速度

为 C# 代码着色是一项复杂的操作。当 Razor 页面中有 C# 代码时, Razor 会将这些代码的着色任务委托给 C# 语言服务(Roslyn)。我们的数据显示,在大多数情况下,这种着色非常快,但大约10%的情况可能会持续数百毫秒。

Razor 编辑体验的性能改进 是我们工程师始终关注的焦点;在17.10中,他们专注于缓慢的着色。在他们的分析中,他们发现 Roslyn 执行了大量的工作,而这些工作在代码着色的特定上下文中并不真正需要(例如,确定哪些变量可能为空)。

已经进行了优化,这样 Roslyn 就可以完成在着色上下文中所需要的工作。根据17.10预览版本的数据,我们注意到在最慢的情况下,着色时间减少了25%。如果您注意到 Razor 在着色前有延迟,我们希望您能注意到17.10的改进。

更快的 .NET 解决方案加载

打开解决方案的速度是我们在 Visual Studio 的每次更新中都在改进的,17.10也不例外。Visual Studio 使用了一种称为评估缓存(evaluation cache)的东西,这样在每次打开解决方案时,MSBuild 都不必重新评估所有的依赖项。

在17.10中,这个缓存的内容进行了大量的调优,以便更有效地加载它。我们对 OrchardCore 解决方案的测量表明,缓存大小下降了近50%。对我们的用户来说更重要的是,这使得打开解决方案的时间减少了10%。

改善基础

在17.10中,除了改进 CPU 和内存使用等基础外,我们还减少了在特定场景中加载的 dll 数量。通过对加载 .NET 项目的代码进行仔细的重构和调优,我们将加载的 dll 数量减少了10%!在带有机械硬盘的低端机器上加载 dll 可能很慢。此外,dll 加载会引起检查 dll 的杀毒软件的开销,因此我们希望这些改进将对较慢的机器有所帮助。

分享您的反馈并与 Visual Studio 保持联系!

我们感谢您花时间报告问题和提交建议,并希望您在使用 Visual Studio 时继续给我们反馈,告诉我们您喜欢什么以及我们可以改进什么。您的反馈对于帮助我们使 Visual Studio 成为最好的工具至关重要!您可以通过开发者社区与我们分享反馈,通过发送反馈来报告问题或分享您的建议,并分享您对新功能或改进现有功能的建议。

通过在 YouTube, Twitter, LinkedIn, Twitch 和 Microsoft Learn 上关注我们与 Visual Studio 团队保持联系。

我代表整个 Visual Studio 团队,感谢您的阅读和编码愉快!

原文链接:https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-10-performance-enhancements/