美文网首页
WebAssembly的概念

WebAssembly的概念

作者: 依然还是或者其他 | 来源:发表于2019-12-12 12:04 被阅读0次

    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

    相关文章

      网友评论

          本文标题:WebAssembly的概念

          本文链接:https://www.haomeiwen.com/subject/qvermctx.html