微软必应从.NET Core 2.1获得了性能提升

据微软工程师Mukul Sabharwal介绍,在将微软搜索引擎必应迁移到.NET Core 2.1之后,内部服务延迟降低了34%,这主要归功于.NET社区贡献的改进。

按照Sabharwal的说法,.NET Core的多项改进贡献了大部分的性能提升,包括字符串相等矢量化、使用新的Span<T>类型的string.IndexOf/LastIndexOf,它们加速了HTML渲染和操作;EqualityComparer.Default去虚拟化,这提升了字典性能;并发GC写监视,这降低了CPU使用;还有其他的特性。

 640?wx_fmt=jpeg(图片来自微软博客)

如上所述,大部分改进都是由.NET社区贡献的,Sabharwal指出,虽然许多GitHub pull request来自微软员工。据Sabharwal介绍,有两个关键因素使得必应可以迁移到.NET Core 2.1。一个是支持ReadyToRun镜像,这使得JIT编译变成了一个预部署步骤。没有ReadyToRun镜像,所有代码在它要在上面运行的每一台机器上都应该JIT编译,由于支撑必应的机器数量众多,所以这会显著降低服务能力。使用.NET Core的crossgen工具,就可以在微软实验室中对应用程序进行预编译,然后部署镜像。第二个关键因素是.NET Standard 2.0,一个超过32K API的集合,这可以帮助开发人员确保他们的代码可以在多个平台上轻松地移植到.NET Core 2.1。

最后,Sabharwal强调了使用xcopy从他们的持续集成管道部署必应应用程序中的.NET Core运行时的重要性。这才使得必应在.NET Core 2.1正式发布仅两天之后就过渡到了.NET Core 2.1。

正如InfoQ在.NET Core 2.1发布时所报道的那样,.NET Core 2.1其中一个最大的卖点就是性能提升,以及采用自包含部署形式的新部署选项。在性能方面,最引人注意的是,.NET Core 2.1带来了对新类型System.Span<T>的支持,该特性稍后也添加到了F# 4.5中。此外,JIT编译器有许多优化,包括上面列出的这些。想要深入了解更多有关.NET Core 2.1性能改进的信息,请查阅微软工程师Stephen Toub的博客。

原文地址: http://www.infoq.com/cn/news/2018/08/bing-speedup-dotnet-core-2.1


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建基于云端的中间层以支持跨平台的智能视觉服务

不断演进的应用场景初级应用场景—宅在家里场景&#xff1a;Bob同学有一天在网上看到了一张建筑物的图片&#xff0c;大发感慨&#xff1a;"好漂亮啊&#xff01;这是哪里&#xff1f;我要去亲眼看看&#xff01;"Bob同学不想问别人&#xff0c;可笑的自尊心让他觉得…

高等数学超入门学习笔记

极限 百度百科 1.数列极限 百度百科 1.1 数列 1.2 数列极限 1.3 单调收敛原理 {xn}\{x_n\}{xn​}单调递增且{xn}\{x_n\}{xn​}有上界&#xff08;可以找到实数M使{xn}\{x_n\}{xn​}中任意一项小于M&#xff09;&#xff0c;{xn}\{x_n\}{xn​}收敛&#xff08;存在象限a&…

Microsoft宣布正式发布Linux on ASE

Microsoft宣布正式发布&#xff08;GA&#xff09;用于ASE&#xff08;应用服务环境&#xff0c;App Service Environment&#xff09;的Linux。该服务使客户可结合使用Linux上的应用服务&#xff08;App Service&#xff09;特性与ASE。在正式发布版之前&#xff0c;Microsoft…

Rinne Loves Xor

链接&#xff1a; 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 输入描述: 第一行一个整数 N&#xff0c;表示数组 A 和 B 的长度。 第二行 N …

Pipelines - .NET中的新IO API指引(一)

原文&#xff1a;https://blog.marcgravell.com/2018/07/pipe-dreams-part-1.html作者&#xff1a;marcgravell大约两年前&#xff0c;我发表了一篇关于.NET中即将到来的体验性新IO API的博文——在那时它被叫做"Channels"&#xff1b;在2018年的五月末&#xff0c;它…

[XSY] 分割(dfs树)

分割 题目相当于问 删掉两个点后 图是否仍然连通 割点问题&#xff0c;考虑用dfs树解决 设删去点u&#xff0c;v&#xff08;dfn[v]<dfn[u]&#xff09; 把 u, v 删去之后整棵树大概断成了几个部分&#xff1a; • v 上面到根的部分&#xff0c;以及上面挂着的那些东西&…

三分法讲解

二分用到的挺多&#xff0c;三分用的少&#xff0c;但也不能忘。。。 二分我们常常用于一个具有单调性的情况中求解某值 而三分就像是求一个凸性或凹形函数时&#xff0c;来求那个凹凸点 一开始L0&#xff0c;Rinf&#xff0c;然后也是不断缩小L与R的范围&#xff0c;逼近最值…

使用C#读写结构化的二进制文件

最近工作上遇到一个问题&#xff0c;就是有将近200万个CSV文件&#xff0c;每个CSV文件包含了成千上万条实验数据&#xff0c;CSV以一个不连续的整数值作为文件名&#xff0c;比如&#xff1a;1.CSV、2.CSV、3.CSV、5.CSV等等。另外又有200万个XML文件&#xff0c;每个XML文件的…

牛客IOI周赛16-普及组

比赛链接 文章目录求导题目描述题解&#xff1a;猜数题意&#xff1a;题解&#xff1a;方法一 贪心方法二 暴力答题卡题意&#xff1a;题解&#xff1a;代码&#xff1a;求导 链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C …

Pipelines - .NET中的新IO API指引(二)

原文&#xff1a;Pipelines - a guided tour of the new IO API in .NET, part 2作者&#xff1a;marcgravell在上一章&#xff0c;我们讨论了以往的StreamAPI中存在的一些问题&#xff0c;并且介绍了Pipe,PipeWriter,PipeReader 等API&#xff0c;研究如何写出一个Pipe 并且从…

[XSY] 线图(树形DP、分类讨论)

线图 如图&#xff0c;每个L(L(T))上的点对应T上的一条三点链 在连接L(L(T))上两点&#xff0c;当且仅当两点代表的三点链在T上有共边&#xff0c;且边权为 共边边权*2非共边1边权非共边2边权 在L(L(T))上从点u走到点v&#xff0c;等价于u代表的三点链在T上删掉自己的一条边&…

牛客网【每日一题】4月29日题目精讲 Symmetric Matrix

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 524288K&#xff0c;其他语言1048576K 64bit IO Format: %lld题目描述 输入描述: The input consists of several test cases and is terminated by end-of-file. Each test c…

邻接矩阵和邻接表的使用

邻接矩阵和邻接表的使用 邻接矩阵 为了遍历一个图&#xff0c;我们使用了邻接矩阵&#xff0c;及用ai,ja_{i,j}ai,j​表示由a到b的边权 注&#xff1a;若这两个点不相连或ijijij&#xff0c;那么这个值就会设定为一个非正常的值&#xff0c;以便遍历时特判不走这条边 使用&am…

一个迄今为止最快的并发键值存储库FASTER诞生

FASTER在过去十年中&#xff0c;云中的数据密集型应用程序和服务有了巨大的增长。数据在各种边设施&#xff08;例如&#xff0c;设备&#xff0c;浏览器和服务器&#xff09;上创建&#xff0c;并由云应用程序处理用来获得数据价值或做出决策。应用程序和服务可以处理收集的数…

牛客网【每日一题】4月30日题目精讲 换个角度思考

链接&#xff1a; 文章目录题目描述题解&#xff1a;主席树做法&#xff1a;代码&#xff1a;树状数组&#xff1a;更扯淡的方法&#xff01;&#xff01;&#xff01;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言…

三元环计数四元环计数

三元环计数 问题 给出一张n个点m条边的无向图&#xff0c;问图中有多少个三元组{ u , v , w } &#xff0c;满足图中存在 { (u,v) , (v,w) , (w,u) } 三条边。 求解 Step1 定向 将所有点按 度数 从小到大排序&#xff0c;如果度数相同按 点编号 从小到大排序&#xff0c;u…

牛客网【每日一题】5月1日题目 [SCOI2012]滑雪与时间胶囊

链接&#xff1a; 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 a180285非常喜欢滑雪。他来到一座雪山&#xff0c;这里分布着M条供滑行的轨道和N个轨道之间的交点&#x…

漫谈单体架构与微服务架构(上):单体架构

最近微服务架构特别火爆&#xff0c;就跟人工智能、区块链一样&#xff0c;软件架构设计如果不提微服务&#xff0c;感觉就像是与世界先进的架构风格和开发技术脱了节似的&#xff0c;各方各面都无法彰显高大上的气质。本来再打算使用一套系列文章来讨论微服务的方方面面&#…

ASP.NET Core应用程序的参数配置及使用

应用程序的开发不仅仅是写代码这点事情。假设你正在开发一个能够支持多次部署的微服务&#xff0c;此时你就需要有一个合理的应用程序配置方案&#xff0c;以便在开发和生产环境中能够方便地选用不同的配置参数&#xff0c;并且能够在部署到容器服务&#xff08;比如ACS或者Kub…

“Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)

比赛链接 文章目录A题 A Simple Problem about election题目描述题解&#xff1a;代码&#xff1a;D题 Deploy the medical team题意&#xff1a;题解&#xff1a;代码&#xff1a;F题 Figure out the sequence题意&#xff1a;题解&#xff1a;代码A题 A Simple Problem about…