本文由葡萄城技术团队翻译

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

我们很高兴发布.NET6预览的第6版,本次预览是倒数第二次预览了。在本次预览发布之后到最后一次预览之前,我们会进入RC期,将会有两个RCs。这个版本本身相对内容较少,而Preview7的内容会更多。在所有预览发布结束后,我们将持续对问题进行修复,直到11月发布最终版本。请大家一起期待.NET的新版本。

.NET 6 Preview 6下载地址,根据各位的需要下载Linux, ,macOS, and Windows不同版本。

请参阅ASP.NET CoreEF Core.NET MAUI文章,以了解有关web、数据访问和客户端场景的新功能的更多详细信息。

从.NET 6 Preview 6开始,我们已经测试并支持Visual Studio 2022 Preview 2。Visual Studio 2022可以使用专门为.NET 6开发的Visual Studio工具,如.NET MAUI中的开发、C应用程序的热重新加载、WebForms的新Web Live预览,以及IDE体验中的其他性能改进。.net6也已经用visualstudioformac8.9进行了测试。

查看.NET新特性讨论

# x64仿真更新

我们已经完成了添加对Apple Silicon for macOS和Arm64 for Windows的支持。剩下的就是支持macOS、Apple Silicon和Windows Arm64上的x64仿真。

需要做以下两点实现:

  • 安装并行

  • 使用.NET CLI实现一流体系结构目标,以便在所有场景中启用本机体系结构SDK。

但是目前不方便的一点是,在并行安装程序可用之前(在之后的.NET6中),您需要安装所有x64版本或所有Arm64版本。如果要进行切换,需要卸载/删除Arm64计算机上的所有.NET版本。

工具:.NET SDK可选工作负载的改进

我们添加了三个新的工作负载命令,以实现更好的发现和管理。

l  dotnet workload search-列出可安装的工作负载

l  dotnet工作负载卸载-如果不再需要工作负载,请删除指定的工作负载。也是节省空间的好选择

l  dotnet工作负载修复-重新安装以前安装的所有工作负载

如果因为网络连接不好导致安装失败,就可以解决这个问题。

可选工作负载由多个工作负载包组成,所以会出现部分负载包安装成功,部分安装失败。

在以前的预览中,我们添加了以下命令:

  • dotnet workload install-安装工作负载

  • dotnet workload list-列出已安装的工作负载

  • dotnet workload update-更新已安装的工作负载

库:对System.DirectoryServices.Protocols的TLS支持

已为Linux和macOS的System.DirectoryServices.Protocols启用TLS支持。它已经为Windows启用。NET用户现在可以享受与LDAP服务器的安全通信。

归功于@iinuwa。

工具:Crossgen2取代crossgen

已为所有现有的crossgen方案启用了Crossgen2。在这个里程碑中,我们还从SDK中删除了(旧的)crossgen,旧crossgem不可再访问,无法使用。

Crossgen(1和2)支持将IL预编译为本机代码作为发布步骤。预编译对启动的改进有很大帮助。Crossgen2是一个从头开始的实现,已经被证明是代码生成创新的高级平台。例如,crossgen2可以为比crossgen1更广泛的IL模式集生成代码。

以下MSBuild属性演示如何使用crossgen2启用预编译。

库:Sync-over-async的性能改进

Sync-over-async是阻塞工作的一种常见类型。当线程池工作线程发生时,它会导致饥饿。线程注入的速度过慢可能会延迟其他排队工作的运行,并且可能会延迟饥饿问题的解决。

当Sync-over-async是线程池工作线程上发生的唯一一种阻塞线程时,此更改在默认情况下提高了线程注入速率。有一些新的AppContext配置值可用于配置线程注入速率,以响应Sync-over-async。

Runtime: W^x内存策略

我们支持对W^ x内存保护。这是Apple Silicon的一项要求,也是其他操作系统的一项重要的安全措施。

此特性具有异常名称,它应该被读为“写独占执行”。这意味着内存页可以被标记为读/写或读/执行,但不能是任何包括写和执行的组合。例如,写/执行页会受到缓冲区溢出攻击的影响。

此特性要求在整个产品进行变更,无论使用的是写/执行页。例如,preview 6的一个变化是它要求JIT与我们采用的W^X方案协作。

W^x是苹果硅片机上macOS的一个要求,在.NET 6的所有其他环境中都是可选的,并且在.NET 7的所有环境中都可能是默认模式。

注意:W^x实现在除Apple Silicon以外的所有环境中都具有与.net6的启动回归,它将作为.NET7的一部分解决。由于操作系统支持此场景,Apple Silicon实现没有这种回归。

CodeGen 更新日志

在Preview 6中包含以下代码更改:

## 动态PGO

LSRA

  • 重构LSRA启发选择

https://github.com/dotnet/runtime/pull/52832

  1. DEBUG模式包含一个COMPlus变量,LsraOrdering将允许用户设置启发式排序

  2. 调整寄存器的启发式算法,以选择要溢出的最佳寄存器候选

https://github.com/dotnet/runtime/pull/53853

改进基于这些内容更改:

更多改进:

代码质量

消除冗余的“测试”指令

https://github.com/dotnet/runtime/pull/53214

总结

这次发布很快就要结束了,大家可以尽快尝试一下这次Preview6中提到的内容改动。

感谢所有为.NET6发布做出贡献的人。后续,葡萄城还会继续为大家带来更多.net6更新的相关内容分享。

Macbook(M1版)的用户看过来,.net 6 Preview 6支持Apple Silicon for macOS的更多相关文章

  1. 一枚程序猿的MacBook M1详细体验报告

    前言 2020年11月11日双十一上午,苹果发布了M1芯片的新款Mac,其最大的变化就是将处理器从Intel换成了苹果自研的ARM芯片M1. 上一次苹果更换Mac芯片要追溯到2006年,14年前,苹果 ...

  2. 如何在MacBook M1上无缝切换Win11和MacOS?

    2020年,MacBook M1发布后,由于其夸张到离谱的性能表现,苹果又一次在知名度和销量上真正实现了双丰收. 抛开M1和MacOS其他的华丽特色不谈,很多习惯了Windows系统的同学,在换了这台 ...

  3. MVC路由学习:自定义路由参数(用户看不到参数名),重新定义路由规则

    MVC路由:由于路由global中注册了,在程序第一次运行时,在MVC会自动生成路由,类似于字典的格式缓存下来,但路由生成的规则又是怎样的呢? 路由生成规则是: 1>更具你定义的的顺序查找路由规 ...

  4. 无意苦争春,一任群芳妒!M1 Mac book(Apple Silicon)能否支撑全栈工程师的日常?(Python3/虚拟机/Docker/Redis)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_187 就像大航海时代里突然诞生的航空母舰一样,苹果把玩着手心里远超时代的M1芯片,微笑着对Intel说:"不好意思,虽然 ...

  5. Tuxera NTFS 2018 for Mac中文破解版 U盘读写软件-让你的Mac支持NTFS

    下载链接(复制到浏览器下载):http://h5ip.cn/TLMc 软件介绍 给大家带来一款苹果Mac上如何使用U盘读写的软件,Tuxera NTFS 2018 for Mac中文破解版,Mac O ...

  6. JLink v8克隆版破解向导(此方法仅适用XP32位版 WIN7及以上和64位均不支持 建议使用虚拟机)

    此方法仅适用XP32位版 WIN7及以上和64位均不支持 建议使用虚拟机 摘要 Jlink 4.5版本之后驱动会识别老的克隆版的JlinkV8,Jlink软件在启动时会提示为克隆版本后退出.目前主流的 ...

  7. 【官方免费】Apple Silicon M1 + Parallels 16技术预览版 + Win 10 arm64

    期待了好久,终于能用pd运行win10了,其实也就想写个c++,mac上配置个c++编译器太麻烦了.. 步骤: 打开 https://my.parallels.com/desktop/beta,这里下 ...

  8. MapReduce实现协同过滤中每个用户看过的项目集合

    一.知识准备 hadoop自带的例子在 D:\HADOOP_HOME\hadoop-2.6.4\share\hadoop\mapreduce\sources\hadoop-mapreduce-exam ...

  9. Linux中MySQL5.5解压版普通用户安装

    #查看本机mysql 安装路径 [hadoop@SY-0134 toolkit]$ rpm -qa|grep -i mysql [hadoop@SY-0134 toolkit]$ whereis my ...

随机推荐

  1. 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解

    目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...

  2. 二:使用VS2019 + .net 6创建 webapi 项目

    0.创建一个.net 6项目.由于目前.net 6还是预览版,所以需要添加预览版SDK功能.工具 -> 选项 -> 环境 -> 预览功能 ,勾选使用.net sdk预览版. 1.新建 ...

  3. Objective Evaluation Index of image

    图像质量客观评价指标 在做红外图像细节增强算法研究时,很重要一点就是要对经过算法处理的图像结果进行评价,分成两种评价方法.一种是视觉效果评价:主观的人眼观察,主要是通过观察者能否看到更多图像细节,给人 ...

  4. Step By Step(Lua数据持久化)

    Step By Step(Lua数据持久化) 1. 数据文件:    我们可以利用Lua中table的构造式来定义一种文件格式,即文件中的数据是table构造并初始化的代码,这种方式对于Lua程序而言 ...

  5. java中存储mysql数据库时间类型【date、time、datetime、timestamp】

    在MySQL中对于时间的存储自己见表的时候都是设置的varchar类型的,感觉挺方便的. 昨天拿别人建好的表写代码,发现这张表中时间类型为datetime的,凭感觉试了一下不行,网上查了刚开始试了好几 ...

  6. 干货:ANR日志分析全面解析

    一.概述 解决ANR一直是Android 开发者需要掌握的重要技巧,一般从三个方面着手. 开发阶段:通过工具检查各个方法的耗时,卡顿情况,发现一处修改一处. 线上阶段:这个阶段主要依靠监控工具发现AN ...

  7. TVM自动调度器

    TVM自动调度器 随着模型大小,算子多样性和硬件异构性的不断增长,优化深度神经网络的执行速度非常困难.从计算的角度来看,深度神经网络只是张量计算的一层又一层.这些张量计算(例如matmul和conv2 ...

  8. TinyML设备设计的Arm内核

    TinyML设备设计的Arm内核 Arm cores designed for TinyML devices Arm推出了两个新的IP核,旨在为终端设备.物联网设备和其低功耗.成本敏感的应用程序提供机 ...

  9. Redis 入门权威指北

    前言 看看业务遇到了什么问题? 我们要从互联网架构的演变之路开始说起Redis的前世今生. 在我们小的时候,网络世界好像就是只有通过大屁股台式机才能进入一样,彼时的手机只是用来打打电话,发发短信,网上 ...

  10. 【工具解析】瑞士军刀bettercap2.X解析_第一期_编写HTTP代理注入模块_http(s).proxy.script

    /文章作者:Kali_MG1937 CNBLOG博客号:ALDYS4 QQ:3496925334/ 前言 bettercap已经从1.6更新至2.0版本 语言也从ruby改为了go 编写注入模块指定的 ...