【翻译】.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.从社区的角度:把针对某一特定问题 ...
随机推荐
- 配置github——每次提交后使contributions有记录(有小绿格子)
# 配置github--每次提交后使contributions有记录(有小绿格子) 这几天都有将自己的代码提交到github上,但是在profile里的contributions的表格中没有我提交的记 ...
- win10安装LoadRunner时,安装.net framwork组件报0x800F081F错误 解决办法
一.报错原因 0x800F081F错误大多数是在安装软件时,系统无法联网自动下载安装. 经过各种排查及搜索解决方案,总结原因无非以下三种: 1.windows update被禁用. 2.电脑没有.ne ...
- 从0开发3D引擎(十二):使用领域驱动设计,从最小3D程序中提炼引擎(第三部分)
目录 上一篇博文 继续实现 实现"DirectorJsAPI.init" 实现"保存WebGL上下文"限界上下文 实现"初始化所有Shader&quo ...
- PHP压缩文件夹 php
$path = PUBLIC_DIR.'/images/'; //待压缩文件夹父目录 $zipPath = PUBLIC_DIR.'/images_zip/'; //压缩文件保存目录 !is_dir( ...
- Java基础--冒泡排序算法
冒泡排序算法的运作如下:(从后往前) 比较相邻的元素,如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的元素. 针对 ...
- Jessica's Reading Problem POJ - 3320
Jessica's Reading Problem Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17562 Accep ...
- Java——JDBC
今天给大家更新一篇我自己学习Java——JDBC的经验 Java中JDBC是(Java DataBase Connectivity)的简称,由java语言编写的类和接口组成,可为多种关系型数据库提供了 ...
- Linux基本操作及常用指令
今天复习了下Linux的基本操作及常用指令,上学期大数据云计算课一直也在用linux系统还是比较熟悉的,并在centos6.7虚拟机上部署了前几天做的web项目,了解了Nginx的反向代理与负载均衡, ...
- C++ 指针偏移的理解
//题目:若有程序段int a[5] = { 1, 2, 3, 4, 5 }; int *p = (int *)(&a + 1); printf("%d,%d", *(a ...
- ES6整体内容
ES6内容: 附网站链接:http://www.jscwwd.com/article/5e6488e849a13d1a89caf574