在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安装。