views:

923

answers:

1

I'm looking for real life benchmarks comparing web frameworks based on dynamic languages (Python, Ruby, Groovy and Lua). Even better if they're compared up against classic solutions based on PHP, Java, ASP.NET maybe even Perl. I'm particularly interested in:

  • Django
  • Ruby on Rails
  • Grails
  • Zend Framework
  • Struts2

EDIT: As for Sean's answer:

  1. It's more hypothetical question, in real life I've gotta choose based on more constrains then just raw speed.
  2. Speed is not the only, and not even the most important parameter to take in account. It's actually more interesting how these frameworks scale.
  3. Using standard, well know framework have advantages, that in most cases (unless you're doing something like EVE on-line) out-weight raw speed improvement.

Let me quote book "Struts2 in Action" by D. Brown, C.M. Davis and S. Stanlick:

"If you want, you could roll your own framework. This is actually not a bad plan. It assumes a couple of things though. First, you have lots of really smart developers. Two, they have the time and money to spend on a big project that might seem off topic from the perspective of the business requirements. Even if you have the rare trinity of really smart people, time and money, there are still some drawbacks. I've done work for a company whose product is built on an in-house framework. The framework is not bad. But a couple of glaring points can't be overlooked. First, new developers will always have to learn the framework from the ground up. If you are using a mainstream framework, there’s a trained work force waiting for you to hire them. Second, the in-house framework is unlikely to see elegant revisions that keep up with the pace of industry. In fact, in-house frameworks seem to be suspect to architectural erosion as the years pass and too many extensions are less elegantly tacked on than one would hope."

I couldn't agree more.

+12  A: 

If your project has a serious, identifiable, need for speed, to the point where your framework is a consideration, taking a general-purpose framework is a bad idea to begin with. They're all going to be too slow, by virtue of being high-level, general purpose & extensible.

If your project does not have a hard requirement for an ultra-efficient framework, then you probably wasted more time typing in the question than you'd actually save by going with the 'fastest' framework.

Sean McSomething
Couldn't have said it better myself. +1
Chris
Ditto. +1 (I have to enter 10 chars blah blah.)
Tyson
I'm sorry that you cannot see beyond speed as performance measurement. If you'd read with bit of attention, you'd notice that words "speed" or "fast" **only** appear in your answer, not the question.
vartec
@vartec What sort of quantifiable, objective benchmarks are you asking for then?
Sean McSomething
For example number of concurrent connections they can serve. Which, hasn't got much to do with speed. It's the famous C10K problem.
vartec