【翻译】.NET 5 Preview2发布
在4月2日,发布了.NET 5.0 Preview2,这次发布对一些功能和性能做了相关的改进,同时后面也会实施5.0版本更多的功能,其中一些功能目前也dotnet/designs在.NET 5 Preview1中可以看到.NET 5里程碑中已经完成的建设任务,当然可以查看相关的设计资料进行反馈,同时可以下载Preview2并进行测试他。
可以在Windows MacOS和Linux下载.NET 5 Preview2
ASP.NET Core和EF Core也在当天发布。
必须要使用Visual Studio 2019 16.6才可以使用.NET 5.0。安装最新版本的C# 扩展,将.NET 5.0在VisualStudio Code中使用,目前还不支持Mac的Visual Studio.
发行说明:
RyuJIT中代码质量的改进
每个版本都包含着一些更改,这些更改可以改进JIT生成的机器代码(它被称为“code quality”).更好的代码质量意味着更好的性能。总而言之,下面改进中一半的是实际的新优化,另一半是由于更改RyuJIT的流程而使现有优化能够应用到更多的代码中.
- Use xmm for stack prolog – dotnet/runtime #32538 更改为x86/x64 prolog归零代码,改进:Json;
- Add ValueNumbering support for GT_SIMD and GT_HWINTRINSIC tree nodes – dotnet/runtime #31834—为SIMD和硬件固有类型启用优化器。
- Use GT_NULLCHECK for unconsumed indirections – dotnet/runtime #32641—删除冗余null检查。
- invoke nullable box optimizations earlier – dotnet/runtime #32269—改善优化Nullable。
- Optimize range checks for various array index patterns – dotnet/runtime #1644-消除 range checks 的改进。
- Optimize obj.GetType() != typeof(X) for sealed classes – dotnet/runtime #32790-改进了类型检查表达式。
- Eliminate duplicate zero initializations more aggressively – dotnet/runtime #31960—更好和更广泛的方法,以消除重复零初始化。
- Fix method and basic block flags used by early opts – dotnet/runtime #2196
- 优化某些可以频繁使用,现在更经常地用常数替换数组长度。
垃圾收集器
- Card mark stealing – dotnet/coreclr #25986- 服务器GC(位于不同线程上)可以在标记由较早一代对象保留的gen0/ 1对象时进行执行获取。 这意味着,对于某些GC线程要花费更长的时间进行标记的情况,短暂的GC暂停时间较短。
- Introducing Pinned Object Heap – dotnet/runtime #32283 — 实现了POH(Pinned Object Heap)功能的一部分– GC内部的一部分。 这个新的堆(本质上是LOH的对等体)将允许GC分别管理固定对象,从而避免固定对象对世代堆的负面影响。
Allow allocating large object from free list while background sweeping SOH – dotnet/runtime #2103 — 当BGC清理SOH时,使用空闲列表启用LOH分配。以前这只是在LOH上使用段空间的末端。这样可以更好地使用堆。
Background GC suspension fixes – dotnet/coreclr #27729 -暂停修复程序减少了BGC和用户线程被暂停的时间。 这样可以减少发生GC之前挂起托管线程所需的总时间。 dotnet / coreclr#27578也有助于达到相同的结果。
Fix named cgroup handling in docker – dotnet/runtime #980 — -
添加了对从命名cgroup读取限制的支持。以前,我们仅从全局范围内阅读。
Closing
在容器,虚拟机大家可以去尝试Preview2。希望大家对.NET5提出并反馈意见。接下来几个月里面,将会有更多的版本发布。最终将在11月发布正式版本。
作为测试案例,目前.NET 5.0在Azure负载均衡上运行了.NET网站的50%的流量.
自从发布预览版1天以来一直在上面这么做了,也许大家还记得.NET Core3.0和3.1也这样做过测试案例.
通过将流量分流为5/5,可以确保在不断地性能数据情况下5.0将持续的改进变得更好。这种测试是公开的,也是一种很好的测试方法,目前用.NET5在核心网站的生产环境这将是对.NET5最大的信任,当然不建议大家这样是哟经,建议等等.目前版本号在网站的页脚中可以看到。
来源:https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-2/
【翻译】.NET 5 Preview2发布的更多相关文章
- .NET Core 2.0 Preview2 发布汇总
前言 关于 ASP.NET Core 2.0 的新功能可以查看我的这篇博客. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Preview2 Azure 的改进 Dock ...
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.6——签署发布apk
问题: 为了将APK发布到google市场,需要对APK数字签名. 解决方案: 可以使用java的keytoll命令去创建一个证书,并且在gradle配置文件的signingConfigs块使用. 讨 ...
- easyui源码翻译1.32--accordion(手风琴)
前言 前几天加班比较忙 未能及时更新翻译的 今天多发布几篇..下载该插件翻译源码 Accordion 分类空间允许用户使用多面板,但在同一时间只会显示一个.每个面板都内建支持展开和折叠功能.点击一个面 ...
- easyui源码翻译1.32--Calendar(日历)
前言 前几天加班比较忙 未能及时更新翻译的 今天多发布几篇..下载该插件翻译源码 日历控件显示一个月的日历,允许用户选择日期和移动到下一个或上一个月.默认情况下,一周的第一天是周日.它可以通过设置'f ...
- 利用npm安装/删除/发布/更新/撤销发布包 --社会我npm哥,好用话不多
一.什么是npm? npm是javascript的包管理工具,是前端模块化下的一个标志性产物 简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率 1.从社区的角度:把针对某一特定 ...
- AI翻译离无障碍交流有多远
AI翻译服务通过硬件.软件连接千千万万个应用场景,会打破语言不通的尴尬局面吗?会是人工翻译的终结者吗? 世界这么大,我想去看看!十一长假临近,梦想中的你背起行囊,自由行走在异国的大街小巷.然而现实的画 ...
- vue-cli 3.x 开发插件并发布到 npm
为了摆脱咸鱼的身份,我给自己定了一个开源项目的目标 于是抽空写了一个 textarea,打算发布到 npm 的时候却遇到了问题 之前用 vue-cli 2.x 的时候,打包配置项非常透明,可以很容易的 ...
- 【npm】利用npm安装/删除/发布/更新/撤销发布包
什么是npm? npm是javascript的包管理工具,是前端模块化下的一个标志性产物 简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率 1.从社区的角度:把针对某一特定问题 ...
随机推荐
- C#可空类型知多少
在项目中我们经常会遇到可为空类型,那么到底什么是可为空类型呢?下面我们将从4个方面为大家剖析. 1.可空类型基础知识 顾名思义,可空类型指的就是某个对象类型可以为空,同时也是System.Nullab ...
- JavaScript实现栈结构(Stack)
JavaScript实现栈结构(Stack) 一.前言 1.1.什么是数据结构? 数据结构就是在计算机中,存储和组织数据的方式. 例如:图书管理,怎样摆放图书才能既能放很多书,也方便取? 主要需要考虑 ...
- Python中max()内置函数使用(list)
在学习完列表和元组的基础知识后,做到一个题: 求出列表中频次出现最多的元素. 学习到了python内置函数max的用法 其参数key的用法 匿名函数lamda的用法 python内置函数max() m ...
- SpringBoot入门系列(三)资源文件属性配置
前面介绍了Spring的@Controller和@RestController控制器, 他们是如何响应客户端请求,如何返回json数据.不清楚的朋友可以看看之前的文章:https://www.cnbl ...
- 把.net Core 项目迁移到VS2019 for MAC
VS2019 for MAC已经发布很长时间了,本以为项目移过去很麻烦,一直没有动作,最近呆家里快发霉了,决定研究研究,没想到一句代码都不需要动,直接完功,这下可以生产了.同学们可以放心整了. 本次平 ...
- python小白入门
阅读目录 一python介绍 二安装python解释器 三第一个python程序 四变量 五用户与程序交互 六基本数据类型 七格式化输出 八基本运算符 九流程控制之if...else 十流程控制之wh ...
- nes 红白机模拟器 第2篇 InfoNES
InfoNES 支持 map ,声音,代码比较少,方便 移值. 在上个 LiteNES 的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏.InfoNES_LoadFrame () Wo ...
- Design Patterns | 02 什么样的代码是好代码
目录 01 - 什么是好的代码? 02 - 评价代码的标准有哪些 2.1 可维护性(maintainability) 2.2 可读性(readability) 2.3 可扩展性(extensibili ...
- 【Spring Data 系列学习】Spring Data JPA @Query 注解查询
[Spring Data 系列学习]Spring Data JPA @Query 注解查询 前面的章节讲述了 Spring Data Jpa 通过声明式对数据库进行操作,上手速度快简单易操作.但同时 ...
- 解析Laravel框架下的Contracts契约
Contracts Laravel 的契约是一组定义框架提供的核心服务的接口, 例如我们在介绍用户认证的章节中到的用户看守器契约IllumninateContractsAuthGuard 和用户提供器 ...