Hi, I've been looking through one of my small demos in debug mode (no optimizations, no minify) looking for stuff which bloats the executable size.
First I found a few strange modules before the asm.js block: MEMFS, IDBFS, NODEFS, SOCKFS, and FS (and think the former 4 are all pulled in by FS). The thing is, my code doesn't use any of emscripten's FS emulation, also no fopen/fclose or C++ stream IO (only printf and sprintf functions). Does it make sense trying to untangle these FS dependencies and get rid of some of them? The other big block of "useless" code I found was a lot of C++ IO streambuf iterator code in the asm.js block, and I have no clue what causes this code to be included. I'm not using C++ style IO (<< and >>) or include any C++ IO headers directly. I'm seeing that the <iterator> header has classes which look like the mangled names (see below), but I'm not seeing any code using those (definitely not in my code). I'm not using std containers or strings, I *do* use std::lower_bound, std::binary_search and std::sort from <algorithm>, chrono::high_resolution_clock, std::function, but that's about it. I'd be thankful for every idea where to start with trying to get rid of this C++ IO stuff. Here are some of the mangled function names: __ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_ __ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_ __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_ One of those even calls a sscanf function: __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv this calls: __ZNSt3__110__sscanf_lEPKcP15__locale_structS1_z Cheers & Thanks, -Floh. -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
