This is the mail archive of the
mailing list for the Cygwin project.
Re: Poor execution speeds using -mno-cygwin g77 option
On Fri, 18 Jun 2004, Douglas A. Vechinski wrote:
> Igor Pechtchanski wrote:
> >>Even though Case C, when the -mno-cygwin flag is not used, the
> >>difference is still significant. compared to Case A.
> >That's not surprising. Cygwin is a POSIX emulation environment *on top*
> >of Windows -- naturally the performance of any Cygwin tool will be slower
> >than that of an equivalent pure Windows tool. The MinGW case is
> >surprising, but doesn't belong on this list.
> I was planning on sending the question to Mingw32. I never have been
> totally clear on how separate and distinct Cygwin and Mingw32 are.
Cygwin is a POSIX emulation environment. MinGW32 is a static mapping from
some POSIX calls to the corresponding Win32 API calls. They are separate
projects. Think of Cygwin as a runtime module that wraps all POSIX calls,
and of MinGW as a compile-time mapping. That's why MinGW produces pure
> >>Is this a Cygwin problem, or g77 problem or something else. I don't
> >>recall experiencing such differences several years ago when doing the
> >>same thing.
> >Things evolve. It's possible that some system calls got speeded up on
> >Linux (or, though doubtful, that some system calls got slowed down on
> >Windows). Are you using the same exact options to compile (keep in mind
> >that the defaults may be different on Linux and Cygwin)? As a WAG, are
> >you using floating point emulation instead of hardware?
> I supply the same compiler flags to both under Linux and Cygwin (-O and
> some -D defines).
Check the default compilation options (*not* the command-line flags).
Since you only use the "-O" flag, check whether the Linux gcc and the
Cygwin one have the same defaults (I believe they are called "specs", "gcc
-dumpspecs" should show some of them).
> To my knowledge, I'm not using floating point emulation. But if I was,
> how would I be able to check?
Actually, my WAG may turn out to be right after all. Check the default
target architecture (processor) for both Linux and Cygwin -- you might
find that the default target for Cygwin is i386, and for Linux it's
something like i686/pentiumpro.
Otherwise, your best bet would probably be profiling.
|\ _,,,---,,_ firstname.lastname@example.org
ZZZzz /,`.-'`' -. ;-;;,_ email@example.com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html