Chromium下一代全新渲染渲染引擎 - renderingNG

作者是 Chris Harrelson,他是 Blink 中渲染(将 HTML 和 CSS 转换为像素)的工程负责人。八年来,我一直深入研究 Web 上的渲染性能,我的个人目标是尽我所能更快、更轻松、更可靠地在 Web 上提供出色的用户体验。我很高兴向您介绍我们在那段时间为构建新的、尖端的 Chromium 渲染引擎架构所做的工作。为了实现这一目标,我们付出了巨大的爱心努力,我希望您喜欢听到它!

2021 年,我们将基本完成该架构的设计、构建和交付过程。让我们称之为 RenderingNG,因为它是真正的下一代渲染架构,大大超越了之前的架构。RenderingNG 已经进行了至少八年,代表了许多专门的 Chromium 开发人员的集体工作。它为下一代快速、流畅、可靠、响应迅速和交互式的 Web 内容释放了巨大的潜力。我相信这也是一个基线,它为开发人员可以依赖的所有 Web 渲染引擎定义了一个新的最低标准。

这篇博文是系列文章的第一篇,我们将在其中解释我们构建的内容、构建它的原因以及它是如何工作的。在第一篇文章中,我将从:

  • 我们的北极星目标。
  • 成功金字塔:指导我们工作的原则,以及这些原则在实践中的例子。
  • RenderingNG 实现的特性和功能。
  • RenderingNG 主要项目组件的高级概述。

北极星

推动 RenderingNG 的北极星目标是浏览器引擎实现及其渲染 API 的丰富性,不应成为网络用户体验的限制因素。

您不必担心浏览器错误会导致功能不可靠或破坏网站的呈现。

应该没有神秘的性能悬崖。而且,您不需要解决缺少的内置功能。

它应该可以正常工作。

我相信 RenderingNG 是朝着这个北极星目标迈出的一大步。在 RenderingNG 之前,我们可以(并且确实)添加渲染功能并提高性能,但努力使这些功能对开发人员可靠,并且存在许多性能悬崖。现在我们有一个体系结构可以系统地解决许多这些问题,并且还解除了以前被认为不可行的高级功能。它:

  • 具有跨不同平台、设备和操作系统组合的坚如磐石的核心功能。
  • 具有可预测和可靠的性能。
  • 最大限度地利用硬件功能(内核、GPU、屏幕分辨率、刷新率、低级光栅 API)。
  • 仅执行显示可见内容所需的工作。
  • 内置支持常见的视觉设计、动画和交互设计模式。
  • 提供开发人员 API 以轻松管理渲染成本。
  • 为开发人员加载项提供渲染管道扩展点。
  • 优化所有内容 - HTML、CSS、2D 画布、3D 画布、图像、视频和字体。

与其他浏览器渲染引擎的比较

Gecko 和 Webkit 也实现了这些博客文章中描述的大部分相同的架构特性,在某些情况下甚至在 Chromium 之前添加了它们。这很棒!虽然任何一款浏览器变得更快、更可靠都值得庆祝并产生实际影响,但最终目标是提升所有浏览器的基线,以便开发人员可以依赖它。

成功金字塔

我的理念是,成功是首先实现可靠性,然后是可扩展的性能,最后是可扩展性的结果。

与现实生活中的金字塔一样,每个级别都为上面的级别提供了必要的坚实基础。

可靠性

如果要实现丰富而复杂的用户体验,我们首先需要的是一个坚如磐石的平台。核心功能和基础必须正常工作,并随着时间的推移继续工作。同样重要的是,这些功能组合得很好并且没有奇怪的边缘行为或错误。

因此,可靠性是 RenderingNG 最重要的部分。可靠性是良好测试、质量反馈循环、指标和软件设计模式的结果。

为了说明我认为可靠性的重要性,我们花了过去八年的大部分时间来解决这个问题。首先,我们建立了对系统的深入了解——从缺陷报告中学习并修复它们,引导全面测试,了解站点的性能需求和 Chromium 性能的局限性。然后我们仔细地、渐进地设计并推出了关键的设计模式和数据结构。直到那时我们才准备好为响应式设计、可扩展性和渲染定制添加真正的下一代原语。

这并不是说 Chromium 在那段时间里没有任何改进。事实上,情况正好相反!随着我们逐步重构和推出每一项改进,那些年见证了可靠性和性能的稳定和持续增长。

测试和指标

在过去的 8 年中,我们添加了数以万计的单元、性能和集成测试。此外,我们还开发了全面的指标来衡量 Chromium 渲染在本地测试、性能基准测试以及在真实站点上使用真实用户和设备的表现如何的许多方面。

但是无论 RenderingNG(或其他浏览器的渲染引擎,就此而言)有多么出色,如果浏览器之间存在大量错误或行为差异,那么为 Web 开发仍然不容易。为了解决这个问题,我们还最大限度地使用了Web 平台测试。这些测试中的每一个都验证了所有浏览器都应该通过的网络平台的使用模式。我们还密切监控指标,以便随着时间的推移通过更多测试提高核心兼容性

Web 平台测试是一项协作工作。例如,Chromium 工程师仅添加了 CSS 特性的 WPT 测试总数的 10% 左右;其他浏览器供应商、独立贡献者和规范作者贡献了其余部分。建立可互操作的网络需要一个村庄!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值