Mozilla将Firefox的命运与Rust语言捆绑在一起

随着Rust的成熟,Mozilla已决心豪赌。

Mozilla将 Firefox的命运与Rust语言捆绑起来。Rust是Mozilla主导开发的注重安全、速度和并发的系统级编程语言,最新版本为1.15。随着Rust的成熟,Mozilla开始尝试用Rust开发Firefox的组件,其中包括核心引擎Servo/Project Quantum。自v53起,Firefox将需要Rust构建,这一要求对大多数用户没有影响,但会影响少部分Rust及其依赖的LLVM编译器不支持的平台和架构,比如IBM的S390架构。

Mozilla的Ted Mielczarek称,他们通常不会有意让维护Firefox的人的生活变得更困难,但使用Rust的优势太大了,他们不想让很少用户的平台限制对Rust的采用。

除此之外,Firefox引擎还将发生四大巨变:

1. Servo

Servo是Mozilla火狐浏览器的下一代布局引擎,是使用Rust语言开发的。其重要性可以从三个方面来解释。第一,它的设计旨在利用多核CPU技术,以便更快地进行页面内容渲染;这样一来,即使具有复杂布局的Web页面也会流畅地渲染。第二,它使用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核的话)。

4. Quantum DOM

Quantum DOM是一个软件项目,通过智能处理Web页面上的内容支持加载和读取Web内容并使之尽量减少拥挤。大多数Web开发人员都会高度警觉甚至是增量式的变化——横幅广告加载,在线图像加载,等等——都会降低Web页面的响应性,从而影响页面内容的渲染。天真的解决方案是借助多内核技术实现这些操作的并行化处理,但是此方案会导致极大地吞噬系统内存。

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

更多行业资讯,更新鲜的技术动态,尽在学院。

Mozilla将Firefox的命运与Rust语言捆绑在一起

标签:

来源:慧都网

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年1月3日
下一篇 2017年1月3日

相关推荐

发表回复

登录后才能评论