Live data from Hacker News

Web Framework Benchmarks Round 2

techempower.com

141–150 of 241 posts

Re: Web Framework Benchmarks Round 2

#141
post #53

Earlier quoted context omitted.

I could be missing something, but it looks like you are using the default settings. Have you tried tweaking it all? Specifically setting apc.stat=0, which will stop it from checking the mtime. You'll need to clear the cache with apc_clear_cache() when you make code changes though. You may also want to look at apc.php to check for fragmentation and adjust apc.shm_size if necessary

fork, benchmark, and create a pull request. :)

I'm hesitant to just change the config to apc.stat=0, since I can't ensure apc_clear_cache() will be called during deployment

I'll add in apc.php to help make sure other things are tuned properly though. different settings could be appropriate for different servers...

Re: Web Framework Benchmarks Round 2

#142
post #65

As an amateur hacker and after 275 days of reading Hacker News I feel I can now navigate in the sea of client side Javascript frameworks. With the introduction of this data on web framework performance, I now have another set of choices that I am completely unqualified to comprehend. My first impression is that this data shows about 3 levels of web frameworks. At the bottom (slowest) we have Django's and Rails and ma…

Netty, gemini and servlet are all java server solutions without a thick framework layer getting in-between. What you can tell from these benchmarks in my opinion is that java (or rather the JVM) has the best "raw" performance. Frameworks introduce a slow-down factor on top of the raw platform, and different frameworks have different slow-down factors. You have to trade off developer productivity for performance when…

EDIT: this appears to be a different "Gemini" than the one I'm talking about here - in a comment below, it's mentioned that the tested Gemini is built and maintained internally. So the next paragraph is probably irrelevant.

Note that Gemini is an OSGi framework built on top of Spring DM. For those who don't know, OSGi is Java modularity "done right" - basically a very loosely-coupled module system (which Java lacks) on steroids.

Re: Web Framework Benchmarks Round 2

#143
post #61

It's a useful data point to know the speed of frameworks, but what matters most to me is speed of development and whether or not I enjoy the process. Wish there was a way to benchmark those points.

The reason why I don't like to see this same argument somewhere at the top of every single performance related thread is that it is not a law of physics that faster languages/frameworks are necessarily less productive than slower ones. It's not even an empirical truth.

If someone from my team suggested to use Cake PHP I would say no without even looking at it once. Not because I would never trade performance for productivity, but because I simply do not believe even for a second that productivity gains are the reason for that kind of horrific performance.

Re: Web Framework Benchmarks Round 2

#144
post #58
post #48

I apologize if this question has been asked and answered, but why is netty missing from the database tests? No ORM?

The short answer is that at some point, we kept adding more and more tests on our own, which kept the blog from going out, and we finally decided to have a cutoff date and let the community continue adding tests that they were interested in. I think adding a database test to Netty (as well as Go for that matter) would be a great addition.

Thanks! And thank you very much for this work -- it's tremendously useful.

Re: Web Framework Benchmarks Round 2

#145

Does anyone know what on earth is Play! doing that makes it is so slow? I'd like to see Lift in there if you guys do another round.

The Play JSON controller is using Futures to do JSON serialization. https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... Compare this to the Java Servlet, which just serializes directly in the Servlet callback. https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... The former seems like overkill.

This is not the version which was used in the tests. The tests used a earlier version.

Re: Web Framework Benchmarks Round 2

#146
post #81
post #37

Earlier quoted context omitted.

https://github.com/TechEmpower/FrameworkBenchmarks/tree/mast... See php.ini, php-fpm.conf.

Having max/min spare servers as the same amount is a bad idea. This is incurs a substantial amount of process swapping, as every single request php-fpm is going to try and ensure there are precisely 256 idle servers.

Ok, help us out: Given that we have Wrk set to max out at 256 concurrent requests, what would the ideal tuning for php-fpm? A pull request would be ideal, but you can also just tell us. :)

Re: Web Framework Benchmarks Round 2

#149
post #83

Earlier quoted context omitted.

Why shouldn't that be the case? PHP has been designed from the get go to be super fast and 5.4 introduced a bunch of optimizations that have sped it up even more so. Ruby was designed for programmer happiness, PHP was designed for performance and getting sh*t done.

PHP technically wasn't designed

[deleted]

Re: Web Framework Benchmarks Round 2

#150

Does anyone know what on earth is Play! doing that makes it is so slow? I'd like to see Lift in there if you guys do another round.

My best guess is that the java one is slow due to ebean (I've always seen huge performance improvements from switching to raw jdbc). The scala one I have no clue.

More likely because the version uses only as many threads as the cpu has cores. Whereas the servlet version for example has 128 thanks to the default resin configuration.
Post reply on HN