为提高 Bing.com 搜索引擎的性能,微软最近宣布将 Bing.com 转换为在 .NET Core 2.1 上运行,这是它之前基于的 .NET Framework 的升级版。迁移的消息由 Bing.com 开发团队的 Mukul Sabharwal 近日在 The .NET Blog 上发布,“推动 Bing.com 采用 .NET Core 的主要原因是性能(服务器延迟)”,Sabharwal 写道。
“为了实现这些改进,我们开始努力使代码在 .NET 实现中可移植。团队最开始使用 .NET Standard 1.x ,但简化的 API 接口给我们的代码迁移带来了许多兼容问题。随着 .NET Standard 2.0 回归的 20,000 多个 API ,情况发生了变化,我们开始启动迁移测试。”
据 Mukul Sabharwal 介绍,在将 Bing 搜索引擎迁移到 .NET Core 2.1 之后,内部服务延迟降低了 34% 。.NET Core 2.1 中的多项改进带来了大量的性能改进,包括 string.Equals 和 string.IndexOf / LastIndexOf 的矢量化,它们提高了 HTML 渲染和操作等字符串繁重工作负载的性能。另外,EqualityComparer <T> .Default 的去虚拟化支持,提升了字典性能;并发 GC 的写入监视,降低了应用的 CPU 使用率。
Sabharwal 还写道,.NET Core 2.1 为 .NET 库生态系统带来了 Brotli 压缩算法支持,Bing.com 将使用 Brotli 动态压缩内容以提高性能。
Sabharwal 表示,“与 .NET 团队的密切合作,让我们对 Bing 的未来更加期待。.NET 核心团队也很兴奋,因为我们提供了大量的功能测试和额外的代码库来测量实际的性能提升。我们致力于为用户提供更快速的搜索结果,让开发人员使用最新的软件和工具。”