微软必应从.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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • flume整合kafka

    flume整合kafka整合流程Flume发送数据到Kafka上主要是通过KafkaSink来实现的,主要步骤如下:1.启动Zookeeper和Kafka这里启动一个单节点的Kafka作为测试:#启动ZookeeperzkServer.shstart#启动kafkabin/kafka-server-start.shconfig/server.properties2.创建主题创建一个主题flume-kafka,之后Flume收集到的数据都会发到这个主题上:#…

  • Python OpenCV findContours()函数与drawContours()函数用法

    Python OpenCV findContours()函数与drawContours()函数用法我用的Python3.6,OpenCV3.4。Python3.x与2.x语法不一样,OpenCV2.x与3.x也不一样。看之前得清楚自己用的啥。本文说白了就是个简单的查找轮廓,并且绘制轮廓。简单说一下这俩个函数用法。函数cv2.findContours()有三个参数。第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法。而返回值根据OpenCV版本不同也不一样,但这俩个版本都会返回…

    2022年10月25日
  • one step closer intersection_cut a striking figure

    one step closer intersection_cut a striking figure教程:1.下载软件压缩包文件,首先解压安装程序2.选择第一个选项,下一步3.设置软件安装路径以及其他设置4.运行主程序,安装完成,资源地址:FranzisCutOut9Professional中文版新功能1.色度键-消光现在每个人都可以成为抠图专家。使用色度键隔离方法可以轻松地将对象与均匀彩色背景分开2.分段掩蔽要完美地剪切图片的图案,将照片组合到理想的位置,并通过单击鼠标取出烦人的物体3.专业背景管理。背景管理是CutOut的新功能。并非每个摄影师(包括专业人士)

  • pycharm最新激活码2021(最新序列号破解)

    pycharm最新激活码2021(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 零基础学Java(8)数组「建议收藏」

    零基础学Java(8)数组「建议收藏」数组数组存储相同类型值的序列。声明数组数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标(index,或称索引)可以访问数组中的每一个值。例如,如果a是一个整型数组,a[i]就是数组

  • kernel: TCP: time wait bucket table overflow 问题分析和解决[通俗易懂]

    kernel: TCP: time wait bucket table overflow 问题分析和解决[通俗易懂]目录一问题描述二问题分析三问题解决四问题扩展4.1timewait连接过高有什么影响?4.2如何减少timewait连接数?一问题描述工作中的一台数据库打印如下日志:二问题分析查看当时TCP连接数状态:netstat-n|awk’/^tcp/{++S[$NF…

发表回复

您的电子邮箱地址不会被公开。

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