2016-02-23 35 views
2

JavaScript中矩阵乘法的糟糕表现是高性能webgl的障碍。所以我正在考虑使用pnacl来加速它。理想情况下,我想将ArrayBuffer(Float32Array)和矩阵传递给pnacl,然后使用本机代码完成乘法并更新缓冲区中的值,最后通知页面(javascript)。是否有可能通过pnacl加速webgl矩阵乘法?

但我怀疑缓冲区内存是否可以共享pnacl和page javascript? 如果不是,我必须将缓冲区传递给客户端,我不确定这种操作对性能的影响。

任何建议将不胜感激!

回答

0

与所有优化问题一样,您应该剖析代码以查看矩阵乘法是否是一个问题。如果是,bbudge是正确的,那么必须通过将数组传递到PNaCl并返回到JavaScript,您可能会失去性能收益。

asm.js代码与JavaScript运行在相同的进程和堆栈中,因此您可以通过使用它看到好处。看看http://jsperf.com/matrix-multiplication-with-asm-js/6。不幸的是,并不能保证asm.js能够在所有浏览器上运行。如果浏览器不直接支持asm.js,它将作为普通的JavaScript执行,最终可能会变慢。

WebAssembly可用时,这可能是您最好的选择。