我们很高兴地宣布 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/

【译】Visual Studio 2022 - 17.10 性能增强的更多相关文章

  1. .NET 6.0.6 和 .NET Core 3.1.26、Visual Studio 2022 17.2 和 17.3 Preview 2 和 .NET 7.0 Preview 5 同时发布

    Microsoft 昨天发布了适用于 .NET 6.0.6 和 .NET Core 3.1.26.NuGet.Visual Studio 2019 和 Visual Studio 2022 17.2 ...

  2. .NET6系列:Visual Studio 2022 线路图

    系列目录     [已更新最新开发文章,点击查看详细] 在上一篇博客<Visual Studio 2022>中介绍了VS2022的性能改进与重要功能.本文主要介绍在 Visual Stud ...

  3. Visual Studio 2022 Preview 1 和.NET 6 Preview 5 正式发布

    具有里程碑意义的Visual Studio 2022 Preview 1正式发布,重点是64位,而没有增加新功能,并且同时也发布了.NET 6 Preview 5. https://devblogs. ...

  4. Visual Studio 2019 v16.10 和 v16.11 Preview 1 现已推出!

    Visual Studio 2019 v16.10有什么新功能? 我们很高兴地宣布Visual Studio 2019 v16.10 GA 和 v16.11 preview 1发布.此版本使我们的主题 ...

  5. 地表最强IDE ——Visual Studio 2022正式发布

    地表最强IDE--Visual Studio 2022昨天正式发布啦! 堪称宇宙第一IDE工具集的Visual Studio,在经过不断更新优化之后,新版本就要与大家见面了.本次新版本发布,有许多令人 ...

  6. Visual Studio 2022 初探 (vs2022附激活码)

    前言 Visual Studio 2022 正式版来了.新版本带有 go-live 许可证,可供生产使用.在 Visual Studio 2019 的基础上,新版集成开发坏境提供了非常多的改进,包括对 ...

  7. Visual Studio 2022 Community 不完全攻略

    0. 前言 建议结合视频阅读哦 Visual Studio 2022 Community 不完全攻略 有问题或者意见欢迎评论 ! 1. 下载&安装 Visual Studio Communit ...

  8. [翻译]正式宣布 Visual Studio 2022

    原文: [Visual Studio 2022] 首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意见,或 ...

  9. .NET6系列:微软正式宣布Visual Studio 2022

    系列目录     [已更新最新开发文章,点击查看详细] 首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意 ...

  10. 微软发布了Visual Studio 2022 Preview 1 以及.NET 6 Preview 5

    Microsoft 今天宣布了Visual Studio 2022 的第一个预览版,并且同时也发布了.NET 6 Preview 5. https://devblogs.microsoft.com/v ...

随机推荐

  1. MSBuild 输出日志可视化工具 MSBuild Structured Log Viewer 简介

    感谢 Vatsan Madhavan 小伙伴推荐的 MSBuild 输出日志可视化工具,这个工具可以使用漂亮的 WPF 界面预览 MSBuild 复杂的输出内容 这是一个完全开源的工具,请看 Kiri ...

  2. Mobius 一个运行在 .NET Core 上的 .NET 运行时

    一个 .NET 应用仅仅只是一块在 .NET 运行时上面运行的二进制代码.而 .NET 运行时只是一个能执行这项任务的程序.当前的 .NET Framework 和 .NET Core 运行时采用 C ...

  3. 一步步教你在 Windows 上构建 dotnet 系应用的 UOS 软件安装包

    本文将详细指导大家如何逐步为 dotnet 系列应用创建满足 UOS 统信系统软件安装包的要求.在这里,我们所说的 dotnet 系列应用是指那些能够在 Linux 平台上构建 UI 框架的应用,包括 ...

  4. 开源文档预览项目 kkFileView (9.9k star) ,快速入门

    kkFileView 是一款文件文档在线预览解决方案,采用流行的 Spring Boot 框架构建,易于上手和部署. 该项目基本支持主流办公文档的在线预览,包括但不限于 doc.docx.xls.xl ...

  5. Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发

    一.写在开头 最近一直在更新<Java成长计划>这个专栏,主要是Java全流程学习的一个记录,目前已经更新到Java并发多线程部分,后续会继续更新:而今天准备开设一个全新的专栏 <E ...

  6. 大模型_2:Prompt Engineering

    目录: 1.提示工程简介 2.如何写好提示词 2.1 描述清晰 2.2 角色扮演 2.3 提供示例 2.4 复杂任务分解 2.5 使用格式符区分语义 2.6 情感和物质激励 2.7 使用英语 2.8  ...

  7. 2021~2022Apache大数据相关项目盘点

    一.晋升为Apache TLP(Top-Level Project)的大数据相关项目 1.1.Apache DataSketches (20210203) 1.2.Apache Gobblin (20 ...

  8. 简说Python之循环语句

    目录 Python的运算逻辑 Python条件语句 Python循环语句 Python while循环 Python for 循环 条件语句和循环语句是程序常用的一种基础语法,从语言上来说,能说清楚的 ...

  9. 07 mapping索引操作

    目录 版本 获取健康值 获取所有索引的信息 创建索引 1. 自动推导 2. 自定义 判断索引是否存在 新增字段 新增记录 查询记录 获取mapping信息 删除索引 添加别名 查看别名 索引备份数据 ...

  10. Golang ETCD包的安装使用 golang安装etcd第三方库clientv3 报错 解决

    目录 ETCD 官网 视频地址 课件资料 ETCD 日志收集项目 为什么要自己写不用ELK? 项目的架构 上节课项目进度 etcd介绍 安装etcd windows安装 Ubuntu(linux系统) ...