Adding timestamps for diagnostics, it looks like the system modules are taking 12s-14s each which really adds up.
This is a known issue for large apps where dbghelp.dll takes a long time to query symbols, but it is a little surprising for smaller system libraries.
Possible solutions:
Only support dynsym (dr_get_proc_address) by default.
Require passing an extra option to do drsym lookups?
Xref #4187 where we may want the same thing for ELF.
Only do one drsym lookup: today it's doing both mangled and demangled.
This would presumably cut the time in half.
But it would still be too slow!
Do a single enumeration of symbols and look for function names for each
in func_trace, instead of querying into drsyms for each one, in case
the dbghelp lookup is what's slow.
Debug build:
Adding timestamps for diagnostics, it looks like the system modules are taking 12s-14s each which really adds up.
This is a known issue for large apps where dbghelp.dll takes a long time to query symbols, but it is a little surprising for smaller system libraries.
Possible solutions: