webassembly优缺点

Z, ZLW 1116

WebAssembly 优势:更好的性能便携且安全集成遗留库。WebAssembly 缺点:没有垃圾收集不能直接访问DOM旧浏览器不支持。WebAssembly 正在迅速成为一种主流技术,它被所有主要的浏览器供应商采用,特别是因为接近原生的代码性能。

首先WebAssembly是一种新的字解码格式,翻译成英文就是ByteCode,我们将字节码格式这五个字拆分成两部分来看,首先是字节码,那么既然提到了字节,它的表现形式自然就是二进制形式的一连串数据,比如这里我们随便给出一段数据00 61 73 6d 01 00 00 00,然后我们再来看另外一部分格式,我们刚刚随便给出了一串以十六进制形式表示的二进制数据,当然这段数据的的确是一段符合规范的、存在的、最短的且有效的WebAssembly格式的数据。

WebAssembly 优势

WebAssembly 正在迅速成为一种主流技术,它被所有主要的浏览器供应商采用,特别是因为接近原生的代码性能。除此之外 WebAssembly 还拥有以下优势:

  • 更好的性能:WebAssembly 在两个方面提供了增强的性能,即启动速度和吞吐量。缩小的 JavaScript 需要被解析、解释、编译和优化。另一方面,wasm 更紧凑,并且由于其简洁的设计,二进制格式允许更快的解析和快速优化。
  • 便携且安全:它独立于平台、独立于硬件和独立于语言,它不对设备或浏览器没有任何特殊要求,这增强了其便携性,代码在内存安全的沙盒环境中进行验证和执行,可以防止安全漏洞和数据损坏。
  • 集成遗留库:如果应用程序使用 C/C++ 或任何其他兼容语言,WebAssembly 可以轻松地将代码或桌面应用程序可用于 Web。通常使用两个库;用于 Rust 的wasm-pack 和用于 C/C++ 的 Emscripten

WebAssembly 缺点

虽然不断开发新功能,但 WebAssembly 的功能是有限的。

  • 没有垃圾收集:与采用垃圾回收的 JavaScript 不同,Wasm 使用平面/线性内存模型,在实例化时分配大量内存并且不会自动回收内存。
  • 不能直接访问DOM:WebAssembly 无法访问文档对象模型 (DOM),任何 DOM 操作都需要使用 JavaScript 间接完成。或者,在通过 JavaScript 胶水代码完成 DOM 操作的情况下,也可以使用任何工具链,例如 Emscripten。性能取决于所使用的库。
  • 旧浏览器不支持:通常较旧的浏览器没有可用于实例化和加载 Wasm 模块的所需对象。

回复

我来回复
  • 暂无回复内容

站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部