Firefox即将发生的四大巨变

Mozilla的野心是很难忽视的。Servo作为一款Web渲染引擎产品,针对现代化多核驱动的Web而设计。在Mozilla团队开发Servo项目的过程中,Rust这种令人印象深刻的新式编程语言作为一款新的子产品出现在人们面前。但是,许多人对该项目的细节尚不清楚——特别是Mozilla试图加速什么内容及如何加速这方面的信息。

接下来,将介绍的是Firefox引擎下发生的四个最重要的变化。这些内容以Quantum项目中子项目的方式捆绑在一起。让我们来了解每一个子项目对于Web开发人员和普通用户都将意味着什么。

1. Servo

何谓Servo?它是Mozilla火狐浏览器的下一代布局引擎,是使用Rust语言开发的。

为什么它如此重要:Servo是最重要的引擎工具,这可以从三个方面来解释。第一,它的设计旨在利用多核CPU技术,以便更快地进行页面内容渲染;这样一来,即使具有复杂布局的Web页面也会流畅地渲染。第二,它使用Rust语言来保证内存安全而不会牺牲速度。(没有人会喜欢一个不稳定的浏览器,但也没谁想使用一个缓慢的浏览器)。第三,这个引擎的设计目的意在缓解构建和维护火狐浏览器的关键内核的过程,这要归功于Rust语言的高度现代化的软件包管理和构建系统。

因此,那些想要贡献于未来版本的火狐浏览器的用户或利用这些组件的用户,可能都需要使用Rust开始加速。借助于Rust的支持社区、吸收易用性日益受到重视,这个项目应该是不成问题的。

2. WebRender/Quantum渲染器

何谓WebRender?它是Servo的经GPU优化的渲染组件。

为什么它如此重要?现代化设备中的所有硬件,包括最便宜的智能手机,往往都装配了GPU芯片,这样设计的目的是想减轻渲染3D和2D图像的繁重工作。如果实际渲染组件还是一个瓶颈(即WebRender所承担的任务部分),那么Servo的多核Web布局引擎不会提供太大的现实世界速度。

表面上来看,WebRende的设计目的是为了与Servo协同工作。也就是说,它可以应用在任何需要后端渲染的项目中,这在很大程度上类似于Servo重用作包括火狐浏览器在内的项目的Web引擎。

3. Quantum Compositor

何谓Quantum Compositor?此工具的主要目的是将GPU合成工作独立出系统渲染主进程。

为什么它如此重要:根据来自Mozilla官方的消息,很多火狐浏览器版本崩溃的原因主要是由于与图形驱动程序进行了错误的交互作用而招致的。通过把与GPU交互的代码重定位进它自己的进程中,这些崩溃就可以被控制住而不至使整个浏览器倒下。这也是将操作并行化的另一种方法,因为一个单独的处理合成的进程可以在一个单独的CPU核上运行(如果有可用的CPU核的话)。

巧的是,苹果公司的Chrome浏览器也使用类似的方法,因此像WebGL这样具有顶级难度的问题也只会引发当前Web页上的一条警告信息而不会造成整个浏览器崩溃。目前,这个工具只是负责处理一个Web页面上的组件的合成任务,还没有承担像加速视频播放(一次一个任务)这样的艰巨工作。

4. Quantum DOM

何谓Quantum DOM?这是一个软件项目,通过智能处理Web页面上的内容支持加载和读取Web内容并使之尽量减少拥挤。

为什么它如此重要?大多数Web开发人员都会高度警觉甚至是增量式的变化——横幅广告加载,在线图像加载,等等——都会降低Web页面的响应性,从而影响页面内容的渲染。天真的解决方案是借助多内核技术实现这些操作的并行化处理,但是此方案会导致极大地吞噬系统内存。

QuantumDOM,正如Bill McCloskey在他博客上所解释的,尝试通过用户空间线程而不是进程来协作调度页面DOM变化;这也最终导致可能在网页自己的线程上运行单个帧。如果处理恰当,这将允许更复杂的页面布局,而占用更少的性能瓶颈。

上述方案最难的部分就是弄清楚哪些任务可以最有效地组合在一起。这个项目可能会持续很长一段时间才会完善起来,直到Servo成为一个标准配置项目。

本文文字及图片出自 os.51cto.com

你也许感兴趣的:

共有 5 条讨论

  1. 苹果公司的Chrome浏览器也使用类似的方法
    什么鬼

  2. HuPeng  这篇文章, 并对这篇文章的反应是笑死了
  3. 刀尖红叶 对这篇文章的反应是赞一个
  4. mcg-helper代码生成器,不限语言、框架、平台,生成你想要的一切代码,请参考http://blog.csdn.net/loginandpwd/article/details/77447363和http://blog.csdn.net/loginandpwd/article/details/77751566

  5. 紫萱 对这篇文章的反应是俺的神呀

发表回复

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