WebAssembly的概念

WebAssembly

之前没有了解WebAssembly,近期了解下WebAssembly的基本概念

一、何为WebAssembly

  • WebAssembly是一门低阶语言,是一种类汇编语言,不同于JavaScript是门高级语言。

  • WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如C、C++和Rust等低级源语言提供一个高效的编译目标。

  • WebAssembly的模块可以被导入的到一个网络app(或Node.js)中,并且暴露出JavaScript使用的WebAssembly函数。JavaScript框架不但可以使用WebAssembly获得巨大性能优势和新特性,而且还能使得各种功能保持对网络开发者的易用性。

简单来说, WebAssembly被创造出来,是用来解决JavaScript在性能上不足的问题,如AR、VR、高性能绘图等。但 WebAssembly是一门低阶的类汇编语言。

二、WebAssembly在app中使用的原理

对于类汇编语言如何在实际生产中使用的疑惑

原理的核心是
1.代码的二进制格式
2.加载运行该二进制代码的API

根据原理的具体实现是:
1.使用Emscripten移植一个C/C++应用程序(Emscripten是WebAssembly生态系统里的一种编译器,将C/C++ 编译成JS代码)。
2.直接在汇编层,编写或生成WebAssembly代码。
3.编写Rust程序,将WebAssembly作为它的输出。(Rust是一种编程语言,具体语法与C/C++类似)

Emscripten工具能够将一段C/C++代码,编译出:

  • 一个.wasm模块
  • 用来加载和运行该模块的JavaScript”胶水“代码
  • 一个用来展示代码运行结果的HTML文档

参考链接:
https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts
https://juejin.im/post/5be293daf265da616c65157e

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容