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.

Reply via email to