Speed benchmarks comparing Ruby to Py/Perl/PHP/etc?


(Ruby Baby) #1

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing
it to other languages under heavy load or speed.

Anyone seen some?

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.


(Tyler Eaves) #2

That sad, I wouldn’t be too nervous on using for a website
in conjuction with mod_ruby. For most typical webscripts,
runtime is mainly a factor of two things:

Startup time (essentially zero with mod_ruby. This is also why PHP feels
so fast)
Database querys (Not a language thing really, but where most of the time
is spent)

···

On 2004-02-19, Ruby Baby ruby@hitmedia.com wrote:

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing
it to other languages under heavy load or speed.

Anyone seen some?

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.

From my expirence, Ruby is slower than both Python or PHP.

Tyler Eaves “No swimming in the heavy water,
or singing in the acid rain”

		- Rush, "Distant Early Warning"

(Gavin Sinclair) #3

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing it to
other languages under heavy load or speed.

Anyone seen some?

No.

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.

As a complete non-expert, I suggest you try out FastCGI (just ask Ara
Howard) and squid (just to cache responses to take the heat off your app).
If those technologies are amenable to your application, it wouldn’t
matter if you wrote it in Commodore 64 BASIC.

Cheers,
Gavin


(Ara.T.Howard) #4

we have done that. however, we also use fastcgi. using fastcgi should give
you around one to two orders of magnitude speedup (according to seige). when
this is done the speed of the actual lang is completely insignificant.

-a

···

On Thu, 19 Feb 2004, Ruby Baby wrote:

Date: Thu, 19 Feb 2004 13:20:58 +0900
From: Ruby Baby ruby@hitmedia.com
Newsgroups: comp.lang.ruby
Subject: speed benchmarks comparing Ruby to Py/Perl/PHP/etc?

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing
it to other languages under heavy load or speed.

Anyone seen some?

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.

EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328
URL :: http://www.ngdc.noaa.gov/stp/
TRY :: for l in ruby perl;do $l -e “print “\x3a\x2d\x29\x0a””;done
===============================================================================


(Ara.T.Howard) #5

something like this was posted - about a year ago - but i cannot seem to find
it…

this thread is interesting though

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=20021006082518.A73241%40freeze.org&rnum=60&prev=/groups%3Fq%3Dfastcgi%2B%2B%2Bgroup:comp.lang.ruby%26start%3D50%26hl%3Den%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3D20021006082518.A73241%40freeze.org%26rnum%3D60

in particular

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=20021006082518.A73241%40freeze.org&rnum=60&prev=/groups%3Fq%3Dfastcgi%2B%2B%2Bgroup:comp.lang.ruby%26start%3D50%26hl%3Den%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3D20021006082518.A73241%40freeze.org%26rnum%3D60

i have fastcgi and the lastest php installed on my machine. i could run some
bencharks if i intalled mod_ruby and have good enough test suite. imho a good
test would hit a database and generate some dynamic html from some sort of
templating library.

i can tell you now though that:

[ahoward@www ahoward]$ ab -n 1024 http://127.0.0.1/env.fcgi | egrep Requests
Requests per second: 221.74 [#/sec] (mean)

[ahoward@www ahoward]$ ab -n 1024 http://127.0.0.1/env.cgi | egrep Requests
Requests per second: 9.98 [#/sec] (mean)

and

[ahoward@www ahoward]$ cat /usr/local/httpd/htdocs/env.fcgi
#!/usr/local/ruby-1.8.0/bin/ruby
require 'cgi’
require ‘fcgi’

FCGI.each_cgi do |cgi|
content = ''
env = []
cgi.env_table.each{|k,v| env << [k,v]}
env.sort!
env.each{|k,v| content << %Q(#{k} => #{v}
\n)}
cgi.out{content}
end

[ahoward@www ahoward]$ cat /usr/local/httpd/htdocs/env.cgi
#!/usr/local/ruby-1.8.0/bin/ruby
require 'cgi’
require ‘fcgi’

FCGI.each_cgi do |cgi|
content = ''
env = []
cgi.env_table.each{|k,v| env << [k,v]}
env.sort!
env.each{|k,v| content << %Q(#{k} => #{v}
\n)}
cgi.out{content}
end

eg. they are the same exact program, which is nice too. for me this shows
that fastcgi is ‘fast enough’, though i can appreciate the desire for more
extensive testing.

-a

···

On Thu, 19 Feb 2004, gabriele renzi wrote:

Date: Thu, 19 Feb 2004 07:32:04 GMT
From: gabriele renzi surrender_it@remove.yahoo.it
Newsgroups: comp.lang.ruby
Subject: Re: speed benchmarks comparing Ruby to Py/Perl/PHP/etc?

il Thu, 19 Feb 2004 13:20:58 +0900, Ruby Baby ruby@hitmedia.com ha
scritto::

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing
it to other languages under heavy load or speed.

Anyone seen some?

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.

all the benchmarks out there (i.e. doug’s shootout) are really
outdated. ruby seem to be slower than python or perl, but faster than
php. Anyway, an apache benchmark against each plain mod_* or fastcgi
solution would be really interesting :slight_smile:

EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328
URL :: http://www.ngdc.noaa.gov/stp/
TRY :: for l in ruby perl;do $l -e “print “\x3a\x2d\x29\x0a””;done
===============================================================================


(Gavin Kistner) #6

Ruby Baby wrote:

But I just realized I’ve never seen any Ruby benchmarks, comparing
it to other languages under heavy load or speed.

Anyone seen some?

Vaguely related – could someone confirm that the following suggestions
are still valid for Ruby 1.8+ (the test circa Ruby 1.6.6)

http://www.bagley.org/~doug/shootout/lang/ruby/
(See the bottom of the url for the few performance tips.)

Anyone have additional tips to add?

···


(-, /\ / / //


(Josef 'Jupp' SCHUGT) #7

Hi!

  • Ruby Baby:

it’s under consideration to replace PHP with Ruby on a high-traffic
website I work with.

Is a Trabant (built in GDR, maximum speed ~ 107 km/h) faster than a
BWM? It depends. If the lights turn green a BMW driver sees the back
of a Trabant due to the Trabant’s low mass. After some hundred meters
the BWM is in lead.

Is Ruby faster than PHP? Again the question is: Given what scenario?

Josef ‘Jupp’ SCHUGT

···


http://oss.erdfunkstelle.de/ruby/ - German comp.lang.ruby FAQ
http://rubyforge.org/users/jupp/ - Ruby projects at Rubyforge


(Charles Comstock) #8

If you run a search on google for The Great Programming Language Shootout it
shows performance graphs between a number of languages in a number of categories
including tight loops, number crunching, etc. I don’t remember if php was
included though, perl and python were though. Actually that’s a good
site to research how different languages approach certain problems as well.

Charles Comstock
···

On Thu, 19 Feb 2004, Gavin Sinclair wrote:

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing it to
other languages under heavy load or speed.

Anyone seen some?

No.

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.

As a complete non-expert, I suggest you try out FastCGI (just ask Ara
Howard) and squid (just to cache responses to take the heat off your app).
If those technologies are amenable to your application, it wouldn’t
matter if you wrote it in Commodore 64 BASIC.

Cheers,
Gavin


(Andreas S.) #9

Tyler Eaves wrote:

I know Ruby wasn’t created to make a fast-running language.

But I just realized I’ve never seen any Ruby benchmarks, comparing
it to other languages under heavy load or speed.

Anyone seen some?

I ask for a real reason becuase it’s under consideration to
replace PHP with Ruby on a high-traffic website I work with.

From my expirence, Ruby is slower than both Python or PHP.
That sad, I wouldn’t be too nervous on using for a website
in conjuction with mod_ruby. For most typical webscripts,
runtime is mainly a factor of two things:

Startup time (essentially zero with mod_ruby. This is also why PHP feels
so fast)

fastcgi is even better.

Database querys (Not a language thing really, but where most of the time
is spent)

I agree, that’s the most important point; the speed of the language
interpreter itself is pretty irrelevant.

···

On 2004-02-19, Ruby Baby ruby@hitmedia.com wrote:


(Ruby Baby) #10

If you run a search on google for The Great Programming Language Shootout it
shows performance graphs between a number of languages in a number of categories
including tight loops, number crunching, etc.

How funny :

Perl, Python, Ruby all next to eachother - same results:

http://www.bagley.org/~doug/shootout/craps.shtml

(though this was 3 years ago)


(Charles Comstock) #11

gabriele renzi wrote:

···

il Thu, 19 Feb 2004 01:13:14 -0600, Charles Comstock > cc1@cec.wustl.edu ha scritto::

If you run a search on google for The Great Programming Language Shootout it
shows performance graphs between a number of languages in a number of categories
including tight loops, number crunching, etc. I don’t remember if php was
included though, perl and python were though. Actually that’s a good
site to research how different languages approach certain problems as well.

Charles Comstock

it included php, but sadly to say, that shootout is abandoned.
it may be interesting, somehow, but ruby, as an exmaple changed a lot
from 1.6.6 to 1.8.1, even adding idiomatic faster ways to do things
(i.e. block parameters to build hashes or arrays.)

There is an effort (in early stage) to build a newer
benchmark/comparison framework at scutigena.sf.net if you’re
interested in this kind of stuff :slight_smile:

Your only using ruby 1.7.2, not 1.8.1, any particular reason why?

Charlie


(Laurent Julliard) #12

it’s not me it’s they… but I happen to know the anwser :slight_smile:
I suggested one of the authors to move to ruby 1.8.1 and they said the
had problem with stack overflow with the calculation of ackermann(3,7)
on they machine (some debian with ruby deb pkg).
If you can solve that issue they’d pleased to upgrade.
Anyway the framework is enough good to allow you to run it with you
own ruby version just by doing some cp/mv/mkdir

···

il Thu, 19 Feb 2004 10:41:22 -0600, Charles Comstock cc1@cec.wustl.edu ha scritto::

Your only using ruby 1.7.2, not 1.8.1, any particular reason why?