V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PeterAlfredLee  ›  全部回复第 1 页 / 共 1 页
回复总数  1
2022-09-30 09:05:32 +08:00
回复了 liuidetmks 创建的主题 程序员 为什么浏览器上 wasm 的 AES 实现比 js 慢?
想不到看到了在 V2EX 上看到了自己的东西 :)

这个 benchmark 出来结果后,我们也内部讨论过(甚至对 aes 有针对性优化,但是效果不明显),跟大家的看法差不多:
1 、js+V8 没那么拉垮,JIT 应该还是很明显的
2 、aes 的计算量不大(从运行时间也能看的出来),在这种情况下,wasm 由于内存拷贝(胶水代码所负责)所附带的性能影响较明显

由于相关调试工具的缺失,这块没有深究下去,大家有兴趣也可以讨论下

另外,在测试中还发现了一些有意思的地方:chrome 在开启 performance record 后,性能表现较好,结果也比较稳定,猜测是 chrome 在 performance record 时会对内存及时进行清理。

@tool2d @des 我们的 benchmark 是有 warm-up 的,已经考虑了 jit 等优化,benchmark 代码开源在 github ;列出的测试结果是在一般的硬件条件下获得的,大家硬件不同,不过一般来说都会比我们所列的测试结果要好


最后,虽然有点王婆卖瓜的不好意思,但是还是介绍一下 crypto-js-wasm:相比于原来的 crypto-js ,除了引入 wasm 外,还用 ES 进行了重写、加入了 rollup 打包和 jest 测试,还增加了 ts 的支持。后续还考虑增加更多算法(对标 openssl)、加入 simd 、适配其他 runtime(比如 RN)

希望大家可以尝试用用 crypto-js-wasm ,当然 issue 、pr 就更欢迎了
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4250 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 9ms · UTC 05:30 · PVG 13:30 · LAX 21:30 · JFK 00:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.