Time and motion studies of gcc and egcs and LCC

vischne@ibm.net vischne@ibm.net
Tue Feb 3 09:49:00 GMT 1998


>   marcus@bighorn.dr.lucent.com
>>It occurred to me
>>afterwards that the probable reason for this is linking to a DLL library
>>or libraries for time-critical code.  If you get a profiler program that
>>lets you know where gcc spends its time, I think you'll find that gcc is
>>spending that extra time thunking back and forth between cygwin.dll.
>
>I don't think that the overhead of getting into a DLL is all that great, so
>I think that the performance hit is somewhere else, like inside cygwin.dll
>and NT itself.  The cost to enter a DLL is an additional jump instruction
>(indirect through the linkage pointer).

I guarantee you that your estimates are extremely optimistic.  Thunking
is an operating system call followed by filling in a jump location,
followed by the jump. Every time the call is made. Using a DLL library
under Windows is _not_ like using a share library under Linux, because
the Linux linker takes the time to make all calls to the shared jumptable
library behave like statically-linked calls.

Rather than wage a war of opinions in which I am sure that mine is the
better,  someone should do a profile of where the compiler and bash.exe
spend their time.


-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list