

 ErlyWeb vs. Ruby on Rails EC2 Performance Showdown - BitGeek
http://yarivsblog.com/articles/2007/12/09/erlyweb-vs-ruby-on-rails-ec2-performance-showdown/
I loved rails until I tried to implement something non-trivial in it and realized it was just absolute crap.  I suspect it is this way because it came out of the minds of designers rather than programmers...and DHH's attitude is "F You" so it will never improve...  but maybe I'm just spoiled having used WebObjects.   <p>I ended up writing my own web app platform in about 3 months-- custom language, integrated persistence engine and http-server, no-thought-required concurrency... so I'm happy now.   I'm just kinda surprised that more people haven't done this.<p>If you don't have the time to do your own solution, use Erlyweb (which is hampered by being "Rails for erlang") or WebObjects (which is hampered by running on Java). <p>Anyway, I expect that the outperformance of Erlyweb compared to rails will be more dramatic-- in excess of 10 to 1, when running a more complex application, and even higher when running on a multicore cpu.
======
tx
The last commenter on the original thread is absolutely right: Rails follows
different "concurrency model", i.e. it needs multiple processes to run well,
especially on multi-core CPUs. He needs to create a cluster of 4-6 mongrels on
2-core CPU and the margin will shrink.

~~~
yariv
This is the next thing I'll test.

------
tptacek
... and? Rails forks. It's slow even for a Ruby framework. You could beat both
ErlyWeb and Rails handily in C, if your priorities were that far out of whack.
Nobody uses Rails for its speed.

~~~
rontr
It's just about speed as much as how much abuse your server can take before it
stops serving.

~~~
nickb
Servers is absolutely the LAST thing you should worry about today. They cost
next to nothing when you compare their cost to the cost of development.

If you need more performance out of Rails, create another VPS and add the
mongrels to a cluster. Problem solved.

------
srini
EC2 instances are virtualized machines, right? What about differing CPU
contention (i.e. steal times) based on the load of other virtual machines on
the same box?

I don't think the results would change much, but to be safe, I think you
should run this comparison on multiple random ec2 instances, to account for
differing external loads.

------
BitGeek
Interesting, my comments about Rails, ERlyweb and WebObjects were deleted, and
my title was re-written.

~~~
Tichy
The comment is always lost if you also submit an URL.

------
srini
Any idea how they compare when using rails caching? Is there an equivalent in
ErlyWeb?

I'd be curious to see the numbers, as the gap could go either way. I'm not
sure if rails is worse with threads or worse with rendering or both.

------
DocSavage
The author compiled ErlyWeb and YAWS with HiPE
(<http://www.it.uu.se/research/group/hipe>). Are there any issues with using
HiPE instead of the Erlang/OTP compiler?

~~~
yariv
I will try running the test after recompiling without HiPE and see what
difference it makes.

