Thank you!! After removing the Asyncify option, the build time and size have been significantly reduced!!
2024년 7월 9일 화요일 오전 4시 40분 59초 UTC+9에 s...@google.com님이 작성: > It seems that what is slow here is the `--asyncify` pass in wasm-opt. > IIUC that pass will be slower or faster depending on how much of your > program need to be asyncified. > > If you are using embind with asyncify I don't think you can avoid the need > to asyncify calls to _emval_await so I'm not sure what you can do to try to > speed up that pass. Others may have some tricks they know about? > > As an alternative to asyncify we also have `-sJSPI` which doesn't require > this pass, but is also not yet available in stable browsers. > > cheers, > sam > > On Sun, Jul 7, 2024 at 11:59 PM themixup <h2o...@gmail.com> wrote: > >> Thank you. sam. >> I changed the options as instructed and did the profiling. After checking >> the results, I identified sections where time was being consumed. >> Could *._emval_await be affecting this? When compared to other projects, >> there is a difference in *._emval_await. >> >> profile.html >> { >> "pid": 110007, >> "subprocessPid": 110007, >> "op": "spawn", >> "targetPid": 110114, >> "time": *1720413197.1*, >> "cmdLine": [ >> "/home/test/dev/emsdk/upstream/bin/wasm-opt", >> "--strip-target-features", >> "--post-emscripten", >> "-O3", >> "--low-memory-unused", >> "--asyncify", >> "--pass-arg=asyncify-asserts", >> >> "--pass-arg=asyncify...@env.invoke_*,env.__asyncjs__*,*.fd_sync,*.emscripten_promise_await,*.emscripten_idb_load,*.emscripten_idb_store,*.emscripten_idb_delete,*.emscripten_idb_exists,*.emscripten_idb_clear,*.emscripten_idb_load_blob,*.emscripten_idb_store_blob,*.emscripten_sleep,*.emscripten_wget_data,*.emscripten_scan_registers,*.emscripten_lazy_load_code,*._load_secondary_module,*.emscripten_fiber_swap,*.SDL_Delay, >> **._emval_await*", >> "--zero-filled-memory", >> "--pass-arg=directize-initial-contents-immutable", >> "test.wasm", >> "-o", >> "test.wasm", >> "--mvp-features", >> "--enable-mutable-globals", >> "--enable-sign-ext" >> ] >> }, >> { >> "pid": 110007, >> "subprocessPid": 110007, >> "op": "*wait*", >> "targetPid": 110114, >> "time": *1720413197.1* >> }, >> { >> "pid": 110007, >> "subprocessPid": 110007, >> "op": "*finish*", >> "targetPid": 110114, >> "time": *1720416042.543*, >> "returncode": 0 >> }, >> >> 2024년 7월 6일 토요일 오전 1시 36분 27초 UTC+9에 s...@google.com님이 작성: >> >>> You can run your link command with `EMPROFILE=2` set in the environment >>> and emscripten will print a breakdown of the various link steps. >>> >>> If you want even more details you can use `EMPROFILE=1` to produce a >>> trace that can be rendered as html. >>> >>> See https://emscripten.org/docs/optimizing/Profiling-Toolchain.html >>> >>> cheers, >>> sam >>> >>> On Fri, Jul 5, 2024 at 7:44 AM themixup <h2o...@gmail.com> wrote: >>> >>>> During the Reelase build process, compilation is quick but optimization >>>> takes a long time. But Debug type is fast. >>>> How can I identify which parts are taking the most time during >>>> optimization? >>>> >>>> * emcmake cmake -S ../ -DCMAKE_BUILD_TYPE=Release >>>> * build time : 30minutes more... >>>> >>>> * cmakelist build link option >>>> "SHELL:-s EXPORTED_FUNCTIONS='[\"_malloc\", \"_free\"]'" >>>> "SHELL:-s EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\", \"FS\", >>>> \"stringToUTF16\", \"UTF8ToString\", \"lengthBytesUTF8\", >>>> \"allocateUTF8\"]'" >>>> "SHELL:-s NO_EXIT_RUNTIME=1" >>>> "SHELL:-s ELIMINATE_DUPLICATE_FUNCTIONS=1" >>>> "SHELL:-s ERROR_ON_UNDEFINED_SYMBOLS=1" >>>> "SHELL:-s ASSERTIONS=2" >>>> "SHELL:-s FORCE_FILESYSTEM=1" >>>> "SHELL:-s MAX_WEBGL_VERSION=2" >>>> "SHELL:-s WASM=1" >>>> "SHELL:-v" >>>> "SHELL:--bind" >>>> "SHELL:-s ALLOW_MEMORY_GROWTH=1" >>>> "SHELL:-s ALLOW_TABLE_GROWTH=1" >>>> "SHELL:-s TOTAL_MEMORY=1024MB" >>>> "SHELL:-s STACK_SIZE=5MB" >>>> >>>> * my setting >>>> cpu :i7-13700 >>>> ram :32GB >>>> ssd :500GB >>>> emsdk : 3.1.53 >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "emscripten-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to emscripten-disc...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/emscripten-discuss/1b28b3d5-fdc3-432d-bf07-0010570cb2acn%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/emscripten-discuss/1b28b3d5-fdc3-432d-bf07-0010570cb2acn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to emscripten-disc...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/emscripten-discuss/f6b39d3a-6d4c-425d-83f7-561f891dcf3dn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/emscripten-discuss/f6b39d3a-6d4c-425d-83f7-561f891dcf3dn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-discuss+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/064b3098-9b5f-4b99-96db-782794d8220bn%40googlegroups.com.