Quantcast
Channel: InfoQ - 促进软件开发领域知识与创新的传播
Viewing all articles
Browse latest Browse all 1056

爱奇艺直播WebAssembly优化之路

$
0
0

WebAssembly技术简介

近几年,WebAssembly技术非常火,可以说是成为了JavaScript一个新的转折点。JavaScript自1995年诞生之日起,其性能问题就被大家诟病。直到2008年,很多浏览器加入了即时编译器,JavaScript也开始引入JITs,再加上Google等厂商对其的大力优化,其性能提升了10倍不止。由此,JavaScript也开始跳出了浏览器的范围,在各个领域崭露头脚,比如后台使用的Node.js和桌面端使用的Electron等。

JIT技术简而言之是在JavaScript解释执行时将常用的二进制代码块暂存下来,在下一次解释执行相同的代码块的时候可以直接运行暂存的二进制代码块,节约了解释的时间。那能不能将所有JavaScript代码一次性都编译成二进制,提升运行效率呢?WebAssembly的出现回答了这个问题。

在WebAssembly出现之前,JavaScript是浏览器里可以运行的唯一的编程语言。而WebAssembly技术使浏览器运行别的语言编写的程序变成了可能。目前可以使用 C、C++、Rust、Go、Java、C# 编译器(还有更多)来创建wasm 模块。浏览器在运行时将wasm模块放在专有的虚拟机中运行。由于是二进制的文件,运行效率比解释执行的JavaScript脚本要高很多,因此,很多前端开发者也把WebAssembly技术视作下一代的前端技术。

目前WebAssembly的兼容性如下图所示:

可以看到,在新版本上,主流浏览器不管是在PC端还是移动端都支持了WebAssembly,而且各大浏览器厂商还在持续支持此项技术,相信不久就会得到非常普遍的应用。


Viewing all articles
Browse latest Browse all 1056

Trending Articles