Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第99题(2019-12-09):webAssebly1.0成为W3C标准,你对它了解多少? #101

Open
qappleh opened this issue Dec 9, 2019 · 1 comment

Comments

@qappleh
Copy link
Owner

qappleh commented Dec 9, 2019

No description provided.

@qappleh qappleh changed the title 第98题(2019-12-09):webAssebly1.0成为W3C标准,你对它了解多少? 第99题(2019-12-09):webAssebly1.0成为W3C标准,你对它了解多少? Dec 9, 2019
@qappleh
Copy link
Owner Author

qappleh commented Dec 16, 2019

1.什么是webAssebly?

WebAssembly的前身是Mozilla的asm.js ,它是一种可以在现代Web浏览器中运行的新型代码-它是一种低级的类汇编语言,具有紧凑的二进制格式,可以以接近本机的性能运行,并提供诸如C / C ++和Rust的语言。编译目标,以便它们可以在网络上运行。它还被设计为与JavaScript一起运行,从而允许两者一起工作。

2.为什么要用webAssebly

文件加载 - WebAssembly 文件体积更小,所以下载速度更快。

解析 - 解码 WebAssembly 比解析 JavaScript 要快

编译和优化 - 编译和优化所需的时间较少,因为在将文件推送到服务器之前已经进行了更多优化,JavaScript 需要为动态类型多次编译代码

重新优化 - WebAssembly 代码不需要重新优化,因为编译器有足够的信息可以在第一次运行时获得正确的代码

执行 - 执行可以更快,WebAssembly 指令更接近机器码

垃圾回收 - 目前 WebAssembly 不直接支持垃圾回收,垃圾回收都是手动控制的,所以比自动垃圾回收效率更高。

3.WebAssembly 现在是什么状态

二月二十八日,四大浏览器宣布达成共识,即 WebAssembly 的 MVP (最小化可行产品)已经完成。大约一周后,Firefox会默认打开 WebAssembly 支持,而Chrome则在第二周开始。它也可用于预览版本的Edge和Safari,WebAssembly在近日也成为W3C标准。

4.哪些公司产品在用或即将用WebAssembly

  • Google Earth
  • PayPal
  • Figma -多人设计实时协助工具
  • Magnum -跨平台的 OpenGL 图形引擎
  • Blazor -让 .NET 代码也能在浏览器运行
  • Web-DSP -使用浏览器就能即时制作多媒体影音特效
  • Walt -用 JavaScript 语法也能快速开发原生的极速应用

5.推荐书籍

  • 《深入浅出WebAssembly》
    作者简介:于航,多次 QCon、GMTC 大会讲师。曾在阿里巴巴本地生活、Tapatalk 等国内外企业工作。现在 PayPal 上海负责 Global GRT 平台相关的技术研发工作;FCC (FreeCodeCamp China) 上海技术社区负责人;WebAssembly 技术布道者,2017 年注册成为 W3C 官方 CG 成员。《深入浅出 WebAssembly》国内第一本 Wasm 技术书籍作者。

6.推荐文章资料

我建了一个WebAssembly资料库,里面放了一些官网、github、MDN地址及其他精选优秀文章,有需要的可以点击链接查看,WebAssembly资料库

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant