WebAssembly简述
最近在看前端技术类的书,看到WebAssembly,感觉挺有意思的。于是做个简单的记录,为以后可能会碰到的技术瓶颈,打下一个知识储备
线路如下:5W2H
Why(为什么)
What(是什么)
Where(在何处)
When(在何时)
Who(由谁做)
How(怎么做)
How Much(要多少)
WebAssembly诞生的原因?
简单来讲就是,受到javascript语言本身的限制,导致性能瓶颈。如果其他语言如c/c++代码,如果能够在web上使用,能缩短一些成熟软件的开发时间,并且某些模块的性能可以得到极大的提升
WebAssembly是什么?
WebAssembly是新一代Web虚拟机标准,可以让用各种语言编写的代码都能以接近原生的速度在Web中运行。
- 比如,C/C代码可以通过Emscripten工具链编译为wasm二进制文件,进而导入网页中供JavaScript调用。这意味着使用C/C编写的程序可以直接在网页中运行,而Rust语言更是内置了对WebAssembly的支持。
在什么场景下用WebAssembly?
想要用包括 C和C++ 这些编程语言实现的优秀软件或功能模块
如游戏引擎Unity、Unreal,设计软件AutoCAD等
- 如果使用JavaScript开发在功能上与这些软件旗鼓相当的产品可能需要很多年时间。但如果将它们编译成WebAssembly,这些原生应用就可以直接运行在Web平台上。因此,Web能够与原生平台相提并论。
WebAssembly让Web应用能够与原生应用展开竞争。
谁适合用WebAssembly?
以C/C++/Rust为主力开发语言,并且希望介入前端领域的开发者
希望借助高性能的C/C++/Rust库解决前端性能问题的JavaScript开发者
如何使用WebAssembly?
待补充,哈哈…
如有误,可留言