使用WebAssembly,在节点下Emscripten项目启动时间比asmjs慢得多

时间:2018-07-18 13:03:00

标签: node.js emscripten webassembly asm.js

在emscripten项目中,如果我以-s BINARYEN_METHOD=asjms为目标asmjs,则我的应用程序将启动并在node下运行几秒钟。但是,如果我将WebAssembly的目标定为-s BINARYEN_METHOD=native-wasm,那么生成的项目将花费很长时间才能启动,并反复发出消息,表明它在wasm-instantiate上等待采取有意义的操作:

$ /usr/bin/time node ./foo.js                                                         
still waiting on run dependencies:
dependency: wasm-instantiate
(end of list)
still waiting on run dependencies:
dependency: wasm-instantiate
(end of list)
still waiting on run dependencies:
dependency: wasm-instantiate
(end of list)
.
.
.
      315.71 real       464.29 user        74.95 sys

.wasm文件很大,约为42MB。但是我很好奇为什么当WebAssembly发行的过程非常缓慢时,asmjs版本却立即启动了。我有什么办法可以使其快速启动?浏览器中是否会存在相同的差异,还是节点特有的?

在具有节点10.6和emscripten HEAD-500564d的macOS 10.13上运行,两者均通过Homebrew安装。

0 个答案:

没有答案