FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

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

  • 2018-08-23
  • 本文字数:821 字

    阅读完需:约 3 分钟

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

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

 

(图片来自微软博客)

如上所述,大部分改进都是由.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 的博客

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

2018-08-23 19:001646
用户头像

发布了 1008 篇内容, 共 364.9 次阅读, 收获喜欢 337 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

你真的了解 Session 和 Cookie 吗?

陈皮的JavaLib

Java HTTP session Cookie

性能测试误差统计实践

FunTester

软件测试 测试 性能测试 测试开发

架构训练营模块二作业

老实人Honey

「架构师训练营第 1 期」

架构实战营模块二作业

maybe

[架构实战营][模块二作业]

KK_TTN

架构实战营

编程的本质是什么?

白色蜗牛

Java 编程 程序员 软件 计算机

【数据结构】Java 同步工具 AQS

Alex🐒

Java 源码 数据结构

Spring源码解析 -- SpringWeb请求参数获取解析

Java spring 源码解析

2.2如何设计高性能架构

Lemon

高性能架构

基于P4的SCION -- 构建太比特的未来互联网

俞凡

网络

[架构实战营一期] 模块二作业

trymorewang

架构实战营

2.3如何设计高可用架构

Lemon

存储高可用

性能测试误差分析文字版-下

FunTester

软件测试 性能测试 接口测试 测试框架 测试开发

MVP on Board 没用小技巧 👌

newbe36524

.net MVP ASP.NET Core

微信朋友圈高性能架构分析

面向对象的猫

【架构设计模块二】:微信朋友圈的高性能复杂度

Ryoma

架构实战营

智能运维系列之五:总结

micklongen

AIOPS 智能运维

面试算法之螺旋数组查找问题

泽睿

面试 二分查找

健康讲座:如何提升人体免疫能力

石云升

学习 健康 7月日更

【Java特性专题】JDK(8-11)特性分布变化简介

洛神灬殇

Java Java新特性 7月日更 Java11

性能测试误差分析文字版-上

FunTester

性能测试 自动化测试 接口测试 测试框架 测试开发

Presto原理&调优&面试&实战全面升级版

王知无

Selenium4 Alpha-7升级体验

FunTester

maven 自动化测试 Gradle 测试开发 selenium

《面试补习》--来聊聊削峰填谷!

九灵

Java 分布式 消息队列 异步削峰

【LeetCode】变位词组Java题解

Albert

算法 LeetCode 7月日更

external-resizer源码分析-pvc扩容分析

良凯尔

Kubernetes 源码分析 Ceph CSI Kubernetes Plugin

架构实战营模块二作业

老猎人

架构实战营

微信朋友圈架构设计

summer

极客时间 极客时间架构师一期

央视曝光APP弹窗广告三大陷阱:如何监管应用软件弹窗广告

石头IT视角

大数据训练营-第一次作业

西伯利亚鼯鼠

  • 扫码添加小助手
    领取最新资料包
微软必应从.NET Core 2.1获得了性能提升_.NET_Sergio De Simone_InfoQ精选文章