当前位置: 首页 > Web前端 > JavaScript

WebAssembly发展史概览

时间:2023-03-26 20:12:55 JavaScript

随着互联网的发展,越来越多的应用程序借助JavaScript迁移到了Web,但人们也注意到下载、解析、编译JavaScript消耗了大量的时间,导致页面加载时间过长,最终导致用户流失。为了解决这些问题,Mozilla工程师AlonZakai在2012年提出了Asm.js,经过几年的发展,终于在2015年演变为WebAssembly。WebAssembly(简称Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm被设计为编程语言的可移植编译目标,可以在Web上部署客户端和服务器应用程序。这是webassembly.org上WebAssembly的官方定义。从这个定义我们可以看出WebAssembly是一种二进制指令格式。但WebAssemblyTextFormat也常被称为WebAssembly,而实际上,这种文本格式是一种编程语言。官宣后,WebAssembly发展迅速。到2017年11月,Mozilla宣布包括Chrome、Firefox、Safari等所有主流浏览器都已支持WebAssembly。并且根据2021年7月的数据,94%的在用浏览器都支持WebAssembly。在获得广泛的浏览器支持后,一些重量级应用程序逐渐迁移到Web,包括:GoogleEarth——一种主要基于卫星图像呈现地球3D表示的软件。AutoCAD—一种计算机辅助设计和制图软件应用程序。它是一个桌面应用程序,在带有内部图形控制器的微型计算机上运行。Doom-一款包含第一人称射击游戏的视频游戏TensorFlow-一个用于机器学习和人工智能的免费开源软件库。这些例子也表明WebAssembly已经实现了它的设计目标——支持桌面应用程序在网络上的部署。WebAssembly的快速发展源于它的特殊特性:接近原生的性能:基准测试表明它只比原生代码慢10%。WebAssembly体积小,加载速度快,并且是一种紧凑的二进制格式,通常比等效的Javascript代码小得多。安全可靠,WebAssembly代码在默认情况下不允许外部访问的沙箱中运行。支持多种编程语言:WebAssembly不限制用户可以用于开发的语言。只要有相应的编译器,任何语言都可以编译成WebAssembly。