This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
Windows executables.

> >>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.
      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,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:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]