介绍WASM

在JavaScript和机器代码之间搭建桥梁,将后端的算法编译为.wasm文件导入到前端,供js调用。从理论上讲,这项新技术最终实现了让我们可以编写机器代码以在浏览器的虚拟安全沙箱中运行,甚至升级后的WASM被设计为其它语言的编译目标,允许将服务器端代码(例如C或C ++代码)编译到其中,同时在浏览器中执行。要强调的是,WASM并非由开发人员去编写,而是允许开发人员借助C、Go或其它语言编写,并使该逻辑在浏览器上工作

WASM的设计初衷是什么?

  1. WASM的出现绝不是要让它成为一门新的编程语言,正相反,它被规划并设计为一个编译目标,允许C的开发者编译其代码,并在浏览器上运行。

  2. WASM旨在提供高度优化的网络计算能力,并被期待去打破JavaScript在既有环境中的垄断(尽管JavaScript是一种很不错的语言,但其在设计之初就没有考虑到性能上的问题)。

  3. WASM并不是被拿来实现网站优化的,而是尝试在运行以下这些繁重任务时,将浏览器(以及服务端运行时,例如Node.js)的运行推升到一个水准:视频编辑游戏开发AR / VR实时应用音乐编辑和流媒体加密VPN影像辨识以及,其它的一些繁重的任务可以这样说,那些你可以想到的、原本工作量巨大的web代码编译以及性能调试,回到设计初衷上,都可以被用来反向证明WASM的价值。

使用WASM的场景

Tensorflow.js: 把AI和ML带给JS开发人员的库,在添加了WASM后端支持后,Tensorflow一直致力于实现更多的模型,效果如何?与纯JS版本相比,这些模型性能平均提高了10倍。,对这块没有深入研究,只是了解个概念,具体可以参考这里