Jaypee
3/30/2005 6:18:00 AM
Jaypee a écrit :
> Hello,
>
> I am not a performance freak at all but I've noticed that despite a huge
> difference between a single CPU 1GHz G4 and a dual 2 GHz G5, both
> running ruby 1.8.2 with 1GB of RAM on Mac OS X 10.3.8, there was only a
> 33% difference in the calculation of a factorial:
> I used the following code:
> #!/usr/local/bin/ruby
> class Integer
> def factorial
> (1..self).inject(1) { |f, n| f * n }
> end
> end
>
> puts 100000.factorial
>
> It takes about 9 minutes on the lower profile machine and 6 min or so on
> the bigger one.
>
> Generally, the generation of processor (G4 vs. G5) alone is responsible
> of a similar difference at equal clock frequencies. But here, I expected
> a bigger difference given the combined effect of a higher clock, a
> higher generation and a dual CPU.
>
> BTW, I was not able to make a comparable test on my 2.6 GHz 1GB Windows
> XP SP2 workstation which failed at 9273.factorial. I don' t remember the
> message but it's easy to reproduce.
>
> Is this kind of performance "normal" given the algorithm used or is
> there a balance between the coding style and the performances that could
> be wise to consider?
>
> I have no performance objective, I am just curious.
>
> Thank you for your advices,
> Jean-Pierre
Thank you for your comments. I'd like to clear the point about Windows
XP SP2: It works well, I could run the script from a command line
(former tests were done using Eclipse and rdt) and it took 7 minutes on
a P4@2.6 Ghz + 1 GB RAM
As I happended to have access to those similar platforms in terms of RAM
and CPU, I just wanted to compare them and have an idea of performances
using Ruby.
J-P