I've found this true before. The Cygwin version simply performs better by a
significant margin than the one-click.
I will run some benchmarks again and post as well, as I don't have the old
figures handy.
It's not Cygwin that's faster; it's GCC. You're comparing VC6 -- which
is a compiler released in 1998 -- to GCC 3.4.x released in 2004 or
later. Cygwin may be able to perform even faster, because it may
include GCC 4.x (I don't know; I stopped using Cygwin as soon as I
found more useful tools that didn't require the whole bloody
framework). Cygwin, on the other hand, will impose a certain amount of
overhead because everything essentially goes through the GPLed cygwin
DLL (and that licence choice, my friends, is part of the reason we
shouldn't default to a Cygwin install in any case).
A MinGW build will perform faster than the VC6 build because of six
years of compiler optimizations applied -- to compare apples to
apples, use GCC 2.8 or EGCS 1.1. I suspect that the performance of
Ruby compiled with GCC 2.8 would, well, suck. A VC8 build will perform
faster than either a MinGW build or a VC6 build -- but there are other
tradeoffs that are turning out to be rather hard to deal with and
require assistance from Microsoft. To the limit of what compiler
optimizations make a difference, in any case.
I have little nice to say about Cygwin when people bring it up as a
solution, because it IS *NOT* a "solution" on Windows. It's a hack; a
workaround. It's good to use when you absolutely must use Unix
software that the developers have been too damned lazy to actually
*port* the software to Windows. It's really not much better than using
WINE to run Windows software. It'll work, but that doesn't mean you
really *want* to use it if you don't absolutely have to.
Please, try to compare apples to apples.
If Matz, as usual, has a 1.8.6 release for Christmas (Matz?) I will be
recommending Curt use MinGW to compile Ruby for Windows. The
discussions that are going on with Microsoft will be continuing with
the preferred target for the VC8 build being next year's 1.9.1,
because I suspect it will take nearly that long to build the support
tools we need to make this work properly.
-austin