From: Jaypee Date: 2005-03-30T15:19:46+09:00 Subject: Re: Ruby performance question 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