On 10/25/06, M. Edward (Ed) Borasky <znmeb / cesmail.net> wrote:
> M. Edward (Ed) Borasky wrote:
> > Wilson Bilkovich wrote:
> >> The only real reason not to use it that I'm aware of is that it is
> >> fairly slow.
> >> Of course, the native Ruby on Win32 is 10x slower than on Linux for
> >> many tasks, so maybe that's not much of a selling point.
> >>
> >>
> >
> > Really? Curt, Austin? Is native (one-click) Ruby 1.8.5 slower on, say, a
> > 933 MHz Pentium III running Windows than, say, a gcc-compiled (O2) Ruby
> > on the same hardware?
> >
> > Let me drag out my matrix benchmark and dual-booted (Win XP and Gentoo
> > Linux) Athlon XP laptop and see for myself!
> >
> > Be back later, as they say in IRC!
> >
> >
>
> OK ... here we go. I actually had to re-install CygWin; I had deleted it
> because I wasn't using Windows on my laptop. By the way, speaking of
> laptops, I want all of you at RubyConf to know that it has gotten over
> the sadness it was feeling as a dual-booted Window and Linux machine
> being surrounded by Macs.
>
> From
>
> http://rubyforge.org/cgi-bin/viewvc.cgi/MatrixBenchmark/athlon-xp-2000.log?root=cougar&view=co
>
> > A brief test of three Ruby implementations on the same processor. First, the
> > processor specifications (Linux "/proc/cpuinfo"):
> >
> > processor     : 0
> > vendor_id     : AuthenticAMD
> > cpu family    : 6
> > model         : 8
> > model name    : mobile AMD Athlon(tm) XP 2000+
> > stepping      : 1
> > cpu MHz               : 1656.440
> > cache size    : 256 KB
> > fdiv_bug      : no
> > hlt_bug               : no
> > f00f_bug      : no
> > coma_bug      : no
> > fpu           : yes
> > fpu_exception : yes
> > cpuid level   : 1
> > wp            : yes
> > flags         : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow ts fid vid
> > bogomips      : 3313.62
> >
> >
> > Now, the times.
> >
> > Native Windows One-Click Ruby Installer:
> > ruby 1.8.5 (2006-08-25) [i386-mswin32]
> > Matrix of dimension 256 times its inverse = identity? true
> > 137.658000   0.060000 137.718000 (137.719000)
> >
> > CygWin Ruby:
> > ruby 1.8.5 (2006-08-25) [i386-cygwin]
> > Matrix of dimension 256 times its inverse = identity? true
> > 137.598000   0.110000 137.708000 (137.768000)
> >
> > Gentoo Linux Ruby
> > Compiled from source with GCC 4.1.1 -O2 -march=athlon-xp -fomit-frame-pointer
> > ruby 1.8.5 (2006-08-25) [i686-linux]
> > Matrix of dimension 256 times its inverse = identity? true
> > 107.380000   0.010000 107.390000 (107.425632)
>
> So, it appears that on this benchmark, the One-Click and CygWin
> interpreters are equal!! But GCC 4.1.1 beat them both.
>
> Back to RAMEAU. :)
>
>

This has been pretty much my experience. I did a multi-way comparison
between VC6, VC7.1, Cygwin, and MinGW, and didn't see much of a
performance boost.

I have a test suite that takes about 90 seconds to run on my dual Xeon
2.8GHz / 4GB of RAM Win32 box, and 14 seconds on my MacBook.  The
Windows box has similar amounts of CPU performance, twice the RAM, and
10,000 RPM hard disks instead of 5,400 RPM.  It should at least be
close to the Linux / MacOS build, in my opinion.

I think a better benchmark to use here would be Legion (the Ruby
equivalent of Phalanx for Perl).  test/unit seems to really flog the
weak parts of Ruby win32.