我们很高兴地宣布 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. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/xxx". at createRouterError 的说明和解决

    错误说明 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: & ...

  2. linux终端显示git分支的配置

    1.查看现有配置 $ echo $PS1 2.显示git分支 打开./.bashrc文件 添加以下几行命令: git_branch() { git branch 2> /dev/null | s ...

  3. leaflet 河流颜色渐变效果

    1.Leaflet-polycolor github地址:https://github.com/Oliv/leaflet-polycolor 插件缺陷:需要把每个折点的颜色都指定才行,一般做不到 2. ...

  4. QT中各控件的属性和方法

    1.在QT6中,QLabel类具有许多属性和方法,以下是QLabel类的常见属性和调用方法:setText(const QString &text):设置标签的文本内容.setAlignmen ...

  5. 智能控制 | AIRIOT智慧楼宇管理解决方案

    许多行业客户在智慧楼宇的建设中主要面临运营管理低效,楼宇内部各个系统相互独立,不仅管理操作复杂,而且各系统间的数据无法分享,无法支撑大数据分析.此外,由于楼宇管理系统的低效,50%的建筑能耗是被浪费的 ...

  6. go高并发之路——缓存击穿

    缓存击穿,Redis中的某个热点key不存在或者过期,但是此时有大量的用户访问该key.比如xxx直播间优惠券抢购.xxx商品活动,这时候大量用户会在某个时间点一同访问该热点事件.但是可能由于某种原因 ...

  7. 一个简单demo展示应用接口使用goroutine优雅退出

    package main import ( "context" "errors" "log" "net/http" &q ...

  8. Windows中实现将bat或exe文件作为服务_且实现命令行安装、配置、启动、删除服务

    一.背景描述 在Windows环境下进行日常的项目开发过程中,有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行(没有用户登陆,服务在开机后也可以照常运行).且对于那些没 ...

  9. .NET常用库-Ocelot

    一 介绍 1.简介 Ocelot是一个.NET API网关. Ocelot仅适用于.NET Core,目前是为netstandard2.0构建的. Ocelot是一组按特定顺序排列的中间件. Ocel ...

  10. THUWC 2024 游记

    其实这个游记也没啥好写的-- day 0 上午做动车两个小时到重庆,路上玩了 1.5h 的星露谷. 下午去巴蜀中学报道试机,系统是 Ubuntu Jammy,大大的好评,只是桌面是 Xubuntu/X ...