WebAssembly 的发展历史概述

举报
汪子熙 发表于 2023/01/24 11:25:16 2023/01/24
【摘要】 随着互联网的发展,越来越多的应用程序借助 JavaScript 迁移到了 Web 上,但人们也注意到下载、解析、编译 JavaScript 会消耗大量时间,导致页面加载时间过长,最终 , 用户流失。

随着互联网的发展,越来越多的应用程序借助 JavaScript 迁移到了 Web 上,但人们也注意到下载、解析、编译 JavaScript 会消耗大量时间,导致页面加载时间过长,最终 , 用户流失。

为了解决这些问题,Mozilla 的工程师 Alon Zakai 在 2012 年提出了 Asm.js,经过几年的发展,终于在 2015 年进化为 WebAssembly。

WebAssembly(缩写为 Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。 Wasm 被设计为编程语言的可移植编译目标,支持在 Web 上部署客户端和服务器应用程序。

这是 webassembly.org 上 WebAssembly 的官方定义。 从这个定义我们可以看出WebAssembly是一种二进制指令格式。 但是WebAssembly Text Format也经常被称为WebAssembly,而实际上,这种文本格式是一种编程语言。

官宣后,WebAssembly 得到了飞速的发展。 到 2017 年 11 月,Mozilla 宣布包括 Chrome、Firefox、Safari 等所有主流浏览器都已支持 WebAssembly。 并且根据 2021 年 7 月的数据,94% 的正在使用的浏览器都支持 WebAssembly。

在得到浏览器的广泛支持后,一些重量级的应用逐渐移植到Web上,包括:

  • Google Earth — 一种主要基于卫星图像呈现地球 3D 表示的软件。
  • AutoCAD — 一种计算机辅助设计和制图软件应用程序。 它是一个在带有内部图形控制器的微型计算机上运行的桌面应用程序。
  • Doom——一款由第一人称射击游戏组成的视频游戏
  • TensorFlow — 一个用于机器学习和人工智能的免费开源软件库。

这些案例也表明 WebAssembly 已经达到了它的设计目标——支持在网络上部署桌面应用程序。

WebAssembly 的快速发展源于其特殊的特性:

  • 接近原生的性能:基准测试显示它只比原生代码慢 10%。
  • WebAssembly 体积小,加载速度快,是一种紧凑的二进制格式,通常比等效的 Javascript 代码小得多。
  • 安全可靠,WebAssembly 代码在沙箱中运行,默认情况下不允许外部访问。
  • 支持多种编程语言:WebAssembly 不限制用户用于开发的语言。 只要有相应的编译器,任何语言都可以编译成 WebAssembly。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。