Hasty Briefsbeta

双语

Breaking the WASM/JS communication performance barrier

10 months ago
  • #wasm
  • #web-development
  • #performance
  • Sledgehammer bindgen为JS代码提供更快的Rust批量绑定生成
  • wasm-bindgen更通用,支持返回值处理和多类型交互,适合大多数用户
  • Sledgehammer专为需要底层快速DOM访问的Web框架设计
  • Sledgehammer可与wasm-bindgen同时使用
  • 字符串解码开销大:wasm-bindgen每字符串调用TextDecoder.decode,而Sledgehammer每批次调用一次
  • 对小字符串,在JavaScript中解码可避免TextDecoder.decode的开销
  • 附性能对比基准测试链接
  • 在JavaScript中缓存字符串可避免重复解码
  • Sledgehammer的静态字符串通过指针而非值哈希
  • Sledgehammer的操作被编码为字节序列并打包成数组
  • 操作以四个为一组按u32类型批处理,优化读取成本
  • 附操作编码效率基准测试链接