Web Framework Performance Benchmarks

This is making the rounds and is pretty interesting:

http://www.techempower.com/blog/2013/03/28/framework-benchmarks/

My framework of choice, Grails, doesn’t look spectacularly fast, although I already knew that. However, it is nice to see that it is notably faster than RoR (which appears to be a complete dog) and Django, and will probably improve quite a bit with v2.2 on  Groovy 2.0 and Java 7.

However, it seems a big part of the performance lag is because it’s built on Spring, and to my surprise Spring isn’t a great performer, either. It is nice to see that straight up Servlets and Vert.x are beasts, so another score for our dear JVM.

Another thing that caught my attention is that Grails’s ranking improves quite a bit once you move it from EC2 to dedicated hardware. IaaS and PaaS save you some admin work, but also costs you some dev time, but at some point it looks like you’ll get a nice gain from dedicated hardware. It could make something like Rackspace managed hosting on dedicated hardware look reasonable.

With the attention it’s getting, I also expect a shakeup as framework providers help the benchmarkers improve performance. It will be interesting to see how this plays out.

UPDATE 2/2/2014

Round 8 of the web performance benchmarks are out and Grails is looking good. It was missing from Round 7 due to some run time errors, but the jump from round 6 is impressive. Even more impressive is that it now beats Spring! Really surprised about that, but it appears that there was a quite a bit of performance tuning by Lari Hotari. You can see it in the Github commit logs.

JSON test (round 6 -> round 8):
Grails 15.8% -> 21.1%
Spring 37.4% -> 16.5%

Fortunes test (more real-world)
Grails N/A -> 17.2%
Spring 38.4% -> 8.8%

Grails also destroys Django, Rails, Cake, and Symfony2. To be fair, there are PHP, Python, and even a Ruby version that performed better, but pay careful attention to which are full stack and used ORM instead of raw database access.

What’s a little odd is that Grails does worse on EC2 for the JSON test, but slightly better for Fortunes. But as long as it’s not taking a big hit on EC2, I’m happy.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>