According to the AMD CodeXL profiler, the modules cygwin1.dll and
cygstdc++-6.dll account for 65.67% and 5.13% respectively of the runtime
of my code. The breakdown is shown below:
Function Module Timer samples
Timer samples percent
shmat cygwin1.dll 36357
37.7186
ZN4muto7releaseEP7_cygtls cygwin1.dll 19539
20.2708
ZN4muto7acquireEm cygwin1.dll 16843
17.4738
memmove cygwin1.dll 7906
8.2021
operator new(unsigned int) cygstdc++-6.dll 6470
6.71231
dlfree cygwin1.dll 3350
3.47546
dlmalloc cygwin1.dll 2519
2.61334
malloc cygwin1.dll 1159
1.20241
free cygwin1.dll 799
0.828924
_gcclibcxx_demangle_callback cygstdc++-6.dll 277
0.287374
__wrap__ZdlPv cygwin1.dll 260
0.269738
__wrap__Znwj cygwin1.dll 239
0.247951
operator delete(void*) cygstdc++-6.dll 236
0.244839
malloc cygwin1.dll 216
0.22409
free cygwin1.dll 213
0.220977
tmalloc_small(malloc_state*,..) cygwin1.dll 7
0.00726216
As the the performance bottlenecks are shmat, ZN4muto7releaseEP7_cygtls
and ZN4muto7acquireEm. What do these functions do? I cannot find any
information about them online. More importantly how might I prevent
these functions from being called? My guess is that the latter two are
are lock/unlocking functions associated with memory requests (my guess
would be the stack, because there are fewer timer samples associated
with malloc/free etc.
Thanks,
- Olumide
If it matters, my (C++) application is recursive and contains
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple