Live data from Hacker News

Techempower Web Framework Benchmarks Round 10

techempower.com

61–66 of 66 posts

Re: Techempower Web Framework Benchmarks Round 10

#61

what are the benefits of using this benchmark over using ab?

The main benefit is this allows rough comparison to a ton of other frameworks. Just running ab against your one server setup gives you one RPS/latency result on one hardware setup - that's good to know as an absolute metric, but tells you very little about your performance relative to other frameworks.

This project gives you RPS/latency metrics for many frameworks, on a few hardware setups. This enables a rough comparison of "how does my framework perform relative to all these other well-known or established frameworks". Naturally, the comparison is not perfect - there are a ton of reasons that measuring just requests/sec and latency doesn't allow complete comparison between two frameworks. However, once you accept that it is basically impossible to fully compare any two frameworks using just quantitative methods and these numbers should inform your choice of framework (instead of totally control your choice of framework), we can talk about why it's valuable.

Want to run a low-cost server in language X that you happen to love? This project can provide guidance about which frameworks written in language X are performing the best. Want to ensure your service can support 50k requests per second without loosing latency? This project can provide latency numbers for you to examine that let you know which frameworks appear to maintain acceptable latency even under high load.

If you wanted to, you could re-create this project by running ab against 100+ frameworks - that's the cornerstone of what is happening here. Granted, we currently use https://github.com/wg/wrk instead of ab, but the principle is the same - start up framework, run load generation, capture result data. Most of the codebase is dedicated to ensuring that these 100+ frameworks don't interfere with each other, setting up pseudo-production environments with separate server/database/load generation servers, and other concerns that have to be addressed.

Over time, this project has started collect more statistics than just requests/second and latency, which makes it more valuable than just running ab. As more metrics are added and more frameworks are added, this becomes a really valuable project for understanding how frameworks perform relative to one another.

Re: Techempower Web Framework Benchmarks Round 10

#63
post #42
post #35

Bottle handling 5x more requests than Flask. Impressive, but overall Python framework performance ist still... meh.

Falcon is where the performance is at according to the benchmarks.

Or PyParallel, when they include Windows in the next round: https://speakerdeck.com/trent/pyparallel-pycon-2015-language...

Consistently orders of magnitude faster than everything else out there in the Python landscape.

Re: Techempower Web Framework Benchmarks Round 10

#64
post #42

Earlier quoted context omitted.

Falcon is where the performance is at according to the benchmarks.

Or PyParallel, when they include Windows in the next round: https://speakerdeck.com/trent/pyparallel-pycon-2015-language... Consistently orders of magnitude faster than everything else out there in the Python landscape.

Ok, that looks very interesting. Thanks for the heads up.

Re: Techempower Web Framework Benchmarks Round 10

#65
post #5

The chart says Play Framework didn't complete but looking at the output, the logs say it did. https://github.com/TechEmpower/TFB-Round-10/blob/master/peak... What am I missing?

An error occurs, which is logged to stderr, but the benchmark logs don't capture stderr so it's hard to know what's happening. (Or maybe Play redirects stderr to a log file?)

The test passes in the preview runs, in the TechEmpower continuous integration tests and in the EC2 tests so it's probably some transient error that only occurred in the final bare metal test. Maybe there's a race condition in the Play 2 test scripts which only shows up sometimes.

I've spent a fair bit of time maintaining the Play 2 benchmark tests so it's very frustrating to get no result on the final test. Oh well!

Re: Techempower Web Framework Benchmarks Round 10

#66
post #5

The chart says Play Framework didn't complete but looking at the output, the logs say it did. https://github.com/TechEmpower/TFB-Round-10/blob/master/peak... What am I missing?

An error occurs, which is logged to stderr, but the benchmark logs don't capture stderr so it's hard to know what's happening. (Or maybe Play redirects stderr to a log file?) The test passes in the preview runs, in the TechEmpower continuous integration tests and in the EC2 tests so it's probably some transient error that only occurred in the final bare metal test. Maybe there's a race condition in the Play 2 test sc…

Out of the box, the start script from "play stage" does not redirect stderr.

Though I didn't think to check the classpath when I was poking around the TechEmpower github repo. I wonder if a logback.xml slipped in somewhere that's siphoning off stderr to some unknown destination?

Post reply on HN