随笔 - 2649  文章 - 2452  评论 - 0  阅读 - 83267

WXWebAssembly

WXWebAssembly

WXWebAssembly 类似于 Web 标准 WebAssembly,能够在一定程度上提高小程序的性能。

从基础库 v2.13.0 开始,小程序可以在全局访问并使用 WXWebAssembly 对象。

从基础库 v2.15.0 开始,小程序支持在 Worker 内使用 WXWebAssembly。

WXWebAssembly.instantiate(path, imports)

和标准 WebAssembly.instantiate 类似,差别是第一个参数只接受一个字符串类型的代码包路径,指向代码包内 .wasm 文件

与 WebAssembly 的异同

  1. WXWebAssembly.instantiate(path, imports) 方法,path为代码包内路径(支持.wasm和.wasm.br后缀)
  2. 支持 WXWebAssembly.Memory
  3. 支持 WXWebAssembly.Table
  4. 支持 WXWebAssembly.Global
  5. export 支持函数、Memory、Table,iOS 平台暂不支持 Global

其他说明

  • 关于 WebAssembly 的文档可以参考 https://webassembly.org/
  • 基础库 v2.14.0 之后,新增了一些 WXWebAssembly 特性
    • 代码包路径允许传入 brotli 压缩的 wasm 文件,如 .wasm.br
    • 增加对 WXWebAssembly.Global 的支持
  • 小程序插件从基础库 v2.18.1 开始支持 WXWebAssembly
  • 在 Worker 内使用 WXWebAssembly 时,.wasm 文件需要放置在 worker 目录外,因为 worker 目录只会打包 .js 文件,非 .js 文件会被忽略
  • 从微信 8.0.25 开始支持 SIMD 特性

Q&A

  1. 编译出来的 .wasm 体积太大,超过代码包体积限制怎么办?
  • 方法一:把一个 wasm 文件拆分为多个 wasm 文件,然后利用分包加载能力来减少首包体积
  • 方法二:使用 brotli 压缩 wasm 文件
posted on   AtlasLapetos  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示