cygwin1.dll and cygstdc++-6.dll account for over 70% of application runtime cost

Olumide 50295@web.de
Tue Nov 18 00:45:00 GMT 2014


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



More information about the Cygwin mailing list