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类型批处理,优化读取成本
- 附操作编码效率基准测试链接