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.
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.
... 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.
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?<p>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.
Any idea how they compare when using rails caching? Is there an equivalent in ErlyWeb?<p>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.
The author compiled ErlyWeb and YAWS with HiPE (<a href="http://www.it.uu.se/research/group/hipe" rel="nofollow">http://www.it.uu.se/research/group/hipe</a>). Are there any issues with using HiPE instead of the Erlang/OTP compiler?