WebAssembly做矩阵运算比JS慢?是不是我用错了?
我最近在尝试用WebAssembly加速一个图像处理模块,里面涉及大量4×4矩阵乘法。但实测下来发现WASM版本居然比纯JavaScript还慢,有点懵。是不是我的调用方式有问题?
我用的是Emscripten编译的C++代码,导出函数后通过JS调用。数据是通过堆内存传递的,每次都要copy进WASM内存。难道问题出在这儿?
const result = new Float32Array(wasmModule.memory.buffer, resultPtr, 16);
wasmModule._mat4_multiply(aPtr, bPtr, resultPtr);
// aPtr 和 bPtr 是之前写入WASM内存的两个矩阵指针
Newb.明阳
Lv1
数据复制开销大,直接在WASM内部操作矩阵避免频繁拷贝。
点赞
2026-03-22 11:03