From: vischne AT ibm DOT net Subject: Re: Time and motion studies of gcc and egcs and LCC 3 Feb 1998 15:09:00 -0800 Message-ID: <199802031617.QAA89756.cygnus.gnu-win32@out5.ibm.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit To: gnu-win32 AT cygnus DOT com > marcus AT bighorn DOT dr DOT lucent DOT 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 AT cygnus DOT com" with one line of text: "help".