Node.js did really well on tasks that have lots of concurrent requests that are mostly waiting, did OK on basic static serving tasks and not so well on compute-intensive tasks.
Having developed an interest in minimal web-servers, I wondered how Sinatra and, by association, Ruby on Rails would do.
For Sinatra I used the scanty blog engine and the basic "Hello World" example:
require 'sinatra'
get '/hi' do
"Hello World!"
end
For Ruby on Rails, I used the blog tutorial "out of the box", invoking it with "
rails s
"
to start the server. In addition I also had RoR just serving a static file instead of the database-backed blog. All this on my new dev machine, a 2011 MacBook Air with 1.8 GHz Intel Core i7 and 4 GB of DRAM. I also discovered that httperf is a much better benchmark program for
my needs than ab. I used
it with 100 requests per connection, a burst length of 100 and a sufficient number
of connections to get stable results without taking all day.Platform | # requests/sec |
Apache | 5884 |
Sinatra Hello World | 357 |
Ruby on Rails static page | 312 |
Sinatra scanty blog | 101 |
Ruby on Rails blog | 17 |
Is this considered normal or am I doing something wrong?