您所在的位置:首页 - 好文分享 - 正文好文分享
WebAssembly——继HTML、CSS、JavaScript之后第4种Web语言
流量卡推荐网 2023-10-31 【好文分享】 1299人已围观
摘要本篇关于WebAssembly介绍文章来源:作者cz阿鱼原创,公众号<前端精湛掌握>2023-10-23发表于北京欢迎搜索并关注。前言WebAssembly(Wasm)是由Mozilla、谷歌、微软、苹果等公司合作研发的二进制指令格式语言,兼容Web的全新格式,最初是为浏览器设计的,具有内存安全、可移植等特性,发展历程
本篇关于WebAssembly介绍文章来源: 作者cz阿鱼原创,公众号<前端精湛掌握> 2023-10-23 发表于北京 欢迎搜索并关注。
前言
WebAssembly(Wasm)是由 Mozilla 、谷歌、微软、苹果等公司合作研发的二进制指令格式语言,兼容 Web 的全新格式,最初是为浏览器设计的,具有内存安全、可移植等特性,
发展历程
发展历程
如何使用
Emscripten SDK开源编译工具链用于把各种支持的语言编译成 wasm提供给js使用。
首先 C 代码新建文件命名为 hello.c
#include <stdio.h> #include <emscripten/emscripten.h> int main(int argc, char ** argv) { printf(“Hello World\n”); } #ifdef __cplusplus extern “C” { #endif int EMSCRIPTEN_KEEPALIVE myFunction(int argc, char ** argv) { printf(“我的函数已被调用\n”); } #ifdef __cplusplus } #endif
2. Emscripten 编译环境的终端窗口中,进入 hello.c 文件的文件夹中,然后运行下列命令
emcc hello.c -s WASM=1 -o hello.html
3.在HTML中使用
<button>点我点我</button>
<script type="text/javascript">
document.querySelector('myButton').addEventListener('click', function() {
var result = Module.ccall(
'myFunction', // C代码中的方法名
null, // 函数返回值类型
null, // 参数类型
null // 参数
)
})
</script>
在开发时利用 WebAssembly 的应用时使用或尝试过使用的语言统计如下:
图片
Rust 连续第三年成为 WebAssembly 最常用的语言。Rust 一直非常适合 WebAssembly;它是一种广泛流行的现代系统级语言(Stack Overflow 连续七年显示它是最受欢迎的语言),它也恰好是一种用于编写 WebAssembly 运行时和平台的流行语言。
JavaScript 是第二广泛使用的编程语言。尽管无法直接将 JavaScript 编译为 WebAssembly,但可以通过将 JavaScript 代码运行时编译为 WebAssembly 来实现在 WebAssembly 中执行 JavaScript 代码的方式。在这种方法中,代码将在 WebAssembly 托管的解释器中运行。尽管可能会牺牲一些性能,但出人意料地实用,并且越来越受欢迎。虽然可能无法从速度上获得优势,但确实可以受益于 WebAssembly 的安全性和隔离性。
目前应用
除了原本主要应用于游戏、视频等高性能场景之外,WASM还可以被应用于诸如AI、机器学习、图像处理等其他领域。尤其随着近年来深度学习模型依赖GPU运算的需求增长,以及云计算资源逐渐廉价化和普及化,使用WASM进行客户端远程推理或边缘计算变得日益可行
其他方面
Docker联合创始人 Solomon Hykes如果 Wasm + WASI 在 2008年就存在了,就没有必要创建 Docker 了 也调侃说’如果早点出现话我就不发明docker'.
大多观点认为,相比 Docker,Wasm 的确具有更快更轻等优越性
Wasm 会取代 Docker 吗?
nononono,WebAssembly 与 Docker 各有所长、互相补足的关系, WebAssembly 的性能高、轻量级、安全的特点会让 WebAssembly 用在 Docker 进不去的场景。
Docker Wasm功能目前已经处于测试阶段了。
WebAssembly是一个非常有前途的技术,小精也会持续关系后面的发展,第一时间将最新信息展现出来。
ps1:今天文章内容输出比较少,在这里给各位道个歉,实在是小精最近事太多,脑细胞不太够用了T_T
Tags: WebAssembly HTML CSS JavaScript Web语言
上一篇: 婚后可以有异性朋友,但是该有的分寸感和边界感一个都不能少
下一篇: 如何高效的学习
相关文章
文章评论 (暂无评论,1299人围观)
站点信息
- 文章总数:284
- 页面总数:1
- 分类总数:9
- 标签总数:444
- 评论总数:6
- 浏览总数:420643