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

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

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

\\

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

\\

 3b7a6d242182996467beb82de1816166.jpg
(图片来自微软博客)

\\

如上所述,大部分改进都是由.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\u0026lt;T\u0026gt;的支持,该特性稍后也添加到了F# 4.5中。此外,JIT编译器有许多优化,包括上面列出的这些。想要深入了解更多有关.NET Core 2.1性能改进的信息,请查阅微软工程师Stephen Toub的博客

\\

查看英文原文:Microsoft Bing Gets Performance Boost from .NET Core 2.1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101471.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle连接查询,彻底搞懂外连接(左外连接&右外连接)

    Oracle连接查询,彻底搞懂外连接(左外连接&右外连接)Oracle连接查询有3种:交叉连接、内连接、外连接。交叉连接结果是其他连接结果的超集,外连接结果是内连接结果的超集。接下的例子以departments_v、employees_v两个视图数据为例(4条部门数据,9条人员数据)1.交叉连接:又称笛卡尔积连接,是两个或多个表间的无条件连接,因此它会将表1的每一条数据与表2的每一条数据连接,因此结果会有4*9=36条数据

    2022年5月5日
    283
  • touchstart和click 自动区分

    touchstart和click 自动区分varclickEvent=(function(){if(‘ontouchstart’indocument.documentElement===true)return’touchstart’;elsereturn’click’;})();转载于:https://www.cnblogs.com/gaidalou/p/9927885.html

    2022年6月19日
    28
  • 工作笔记 | Visual Studio 调用 Web Service

    工作笔记 | Visual Studio 调用 Web Service

    2021年5月26日
    104
  • arcgis 合并图层_arcgis图层合并

    arcgis 合并图层_arcgis图层合并1.开始编辑 2.选中要合并的图层:根据图层的编号,点击Selected后,再点击Merge,合并  

    2025年6月7日
    3
  • pychrm激活码破解方法

    pychrm激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    58
  • Java课程设计【学生信息管理系统】[通俗易懂]

    Java课程设计【学生信息管理系统】[通俗易懂]课程设计目录一、问题描述二、基本要求三、需求分析四、概要设计1、类之间的调用关系2、学生信息模块3、管理系统模块4、详细设计①主程序LoginGUI的代码②程序View的代码③程序Student的代码④程序ConnectSQLServer的代码五、调试分析六、用户使用说明1、登录2、添加3、查询4、修改5、删除6、退出七、测试结果八、课程设计总结九、参考文献一、问题描述如何实现一个功能简单的学生信息管理系统,能够对学生信息(包括照片)进行添加、删除、修改和查询等操作。二、基本要求实现一个功能简单的学

    2022年10月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号