前言

2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来自于底层,一起来看看都有什么新特性和改进吧。

库改进

新增值类型作为字典值时更快的处理方法

.NET 6 Preview 3 引入了新的 unsafe API CollectionsMarshal.GetValueRef,这个 API 允许你在无数据拷贝的情况下就地更新值,并且将键的哈希计算从 2 次减少到 1 次。该改进在高性能场景下更新字典中存储的 struct 非常有用。

例如:

ref MyStruct value = CollectionsMarshal.GetValueRef(dictionary, key);
// 如果不存在则返回 Unsafe.NullRef<TValue>()
if (!Unsafe.IsNullRef(ref value))
{// 无需拷贝,就地更新value.MyInt++;
}

接口检查和转换性能提升

接口的转换以及检查类型是否实现某接口的性能提升了 16~38%,该改进对模式匹配的性能提升尤其有用。

运行时

.NET 6 Preview 3 也包含更多的运行时改进

代码生成优化

  • 检查 Length 后移除边界检查

  • Span 边界检查省略和顶层范围检查节点移除

  • 添加对字节数组访问的 loop cloning 支持

  • JIT: 非 void 的 ThrowHelpers

  • 浮点数常量 CSE

  • 为不可变静态只读字段启用 CSE 和循环不变式提升优化

  • 折叠更多的常数字符串 null 检查

  • 消除没有 GC 字段的被跟踪临时内存的零初始化

动态 PGO

  • 更新返回合并和尾调用的 profile

  • Class profile: 为集合类 typehandle 可使用 unknown 占位符

在寄存器中保持值类型结构

  • 完成值类型结构改进的第一部分: 创建更多的 LCL_FLD

  • 改进 ‘STORE_BLK(lcl_var)’ 的生存性

完成 .NET 6 异常处理器写直通

  • JIT 中默认启用

  • 将单定义的异常处理器放入寄存器

  • 7~18% 性能提升

.NET 热重载对 Web 应用初步可用

.NET 6 Preview 3 启用了对 ASP.NET Core 和 Blazor 热重载的初步支持,只需要通过 dotnet watch 启动项目即可使用,不过需要修改 Properties/launchSettings.json 后才能使用热重载:

对于 ASP.NET Core 应用,添加 "hotReloadProfile": "aspnetcore";对于 Blazor WebAssembly 应用,添加 "hotReloadProfile": "blazorwasm"

热重载可以在不重新启动应用程序,并且也不丢掉上下文和应用状态的情况下直接应用代码的更新。该功能不依赖 Visual Studio,即使你用记事本修改代码也一样能进行热重载。

另外,这只是 .NET 6 热重载第一步,后续还会为其他所有类型的 .NET 应用开发启用热重载支持。

结语

关于 ASP.NET Core 和 EntityFramework Core 其实还有更多的更新内容,但是这里就不一一介绍了。

以上就是 .NET 6 Preview 3 中包含的部分更新内容,感谢阅读。

.NET 6 Preview 3 发布相关推荐

  1. .NET 6 Preview 2 发布

    前言 在 2021 年 3 月 11 日, .NET 6 Preview 2 发布,这次的改进主要涉及到 MAUI.新的基础库和运行时.JIT 改进. .NET 6 正式版将会在 2021 年 11 ...

  2. 【翻译】.NET 5 Preview 1 发布

    .NET 5 Preview 1 发布 去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET B ...

  3. .NET Core 3 Preview 2发布,C#8更强大的模式匹配

    .NET Core 3 Preview 2 发布了,此版本主要带来了 C# 8 相关的新功能,C# 8 Preview 2 是 .NET Core 3 SDK 的一部分. C# 8 中使用模式进行更多 ...

  4. .NET Core 2.1 Preview 1发布:更快的构建性能

    今天,我们宣布发布 .NET Core 2.1 Preview 1.这是 .NET Core 2.1 的第一个公开发布.我们有很大的改进希望分享出来,并且渴望得到您的反馈意见,无论是在评论中还是在gi ...

  5. Visual Studio 15 Preview 5 发布 大幅提升性能

    Visual Studio 15 Preview 5 发布了,该版本包括许多新的提升和 bug 修复. 微软发布了 Visual Studio 15 的第 5 个预览版本.据微软描述,Preview ...

  6. .NET Core 3 Preview 2 发布,C# 8 更强大的模式匹配

    .NET Core 3 Preview 2 发布了,此版本主要带来了 C# 8 相关的新功能,C# 8 Preview 2 是 .NET Core 3 SDK 的一部分. C# 8 中使用模式进行更多 ...

  7. 滴滴上线自动驾驶服务;微软宣布将永久关闭实体店;.NET 5.0 Preview 6 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  8. 马化腾、马云并列成为中国首富;百度回应“将上线电商直播”;.NET 5 Preview 2 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  9. .NET 6 Preview 1 发布

    .NET 6 Preview 1 发布 前言# 2021 年 2 月 17 日微软发布了 .NET 6 的 Preview 1 版本,那么来看看都有什么新特性和改进吧,由于内容太多了因此只介绍一些较为 ...

最新文章

  1. ASPNet_Compiler学习总结
  2. 中国存储器行业应用趋势与投资机遇研究报告2022版
  3. MFC中混合使用Duilib制作界面
  4. 如果没有就插入,如果有就更新
  5. 笨办法学linux dhcp,了解网关、DNS、子网掩码、MAC地址、DHCP
  6. Matlab sumsqr函数
  7. 前端使用正则表达式从接口地址栏取值并将对应的值展示在页面上
  8. 数学专业毕业,不去做人工智能简直就是在犯罪!
  9. (4)Matplotlib_零碎知识点
  10. 【 2015-2016 XVI Open Cup, Grand Prix of Bashkortostan, SKB Kontur Cup Stage 2】题目总结
  11. 统计二叉树的叶子结点个数(C语言数据结构)
  12. 第二章作业习题答案续
  13. linux C语言多线程 轻进程 LWP:Light Weight Process
  14. 微信公众号网页授权40029错误「建议收藏」
  15. 从Otherside土地稀缺体系聊起, Yuga Labs到底在布局什么?
  16. 【数据库架构】NewSQL和PGXC
  17. 两用图片视频压缩软件
  18. Go语言处理Windows系统的图标ICO文件(中)
  19. leetcode 714 买卖股票的最佳时机含手续费-动态规划(中等)
  20. 企业微信又更新了!聊天敏感词、下载直播回放视频、聊天文件支持10GB...

热门文章

  1. PHP-Redis扩展安装 error: ext/standard/php_smart_str.h: No such file or directory
  2. phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
  3. Oracle数据库查询用 where in 查询的项超过1000条的解决方案
  4. Tomcat - Tomcat安装
  5. 在Activity不可见时暂停WebView的语音播放,可见时继续播放之前的语音
  6. oracle 基本异常的练习及各个错误码
  7. Redis系统性介绍
  8. 如何开发一个学生成绩管理糸统(9)
  9. xbox one 越狱_如何在Xbox One上播放视频和音乐文件
  10. Linux 环境下 jdk1.8 maven3.2.3 Git2.8.0 安装脚本