Live data from Hacker News

Web Framework Benchmarks Round 5

techempower.com

21–30 of 58 posts

Re: Web Framework Benchmarks Round 5

#21
post #13
post #9

Earlier quoted context omitted.

I've just submitted a pull request.

You may be the fastest pull-requester I've seen in the five rounds of this project. Good show.

Hehe :)

It actually took more time to clone and open the code in VS than to make the changes.

Re: Web Framework Benchmarks Round 5

#23
Thank you so much for finally including the ASP.NET/IIS/Windows stack. I understand that it was a user contribution. This finally gives me something to compare the other stacks against. I realize that Windows/IIS and Linux/Apache|nginx is apples and oranges but it's still nice!

Re: Web Framework Benchmarks Round 5

#24
There are some strange things I noticed about this benchmark's organization:

- JRuby is a Ruby implementation. Why is it listed under Platform? It should be listed under Language.

- Why are Unicorn and Gunicorn listed under front-end web servers? Unicorn and Gunicorn are explicitly not front-end web servers, but are meant to be put behind a reverse proxy, by design. The Unicorn author tells users very clearly not to put it directly on the Internet because bad things will happen: http://unicorn.bogomips.org/PHILOSOPHY.html section "Application Concurrency != Network Concurrency". It would be more suitable to put both of them in the Platform category.

Re: Web Framework Benchmarks Round 5

#25

Please add Phusion Passenger ( https://www.phusionpassenger.com/ ) to the benchmark for Ruby apps. Right now Unicorn is the only server in that benchmark for Ruby but it's far from the only available server.

Round 1 used Passenger, but the feedback we got was that Unicorn performed better so we switched to that. Currently, we're aiming to show each framework in the best possible production configuration. In the future we plan to show multiple web/app servers per framework so that you could compare Ruby on Passenger vs. Ruby on Unicorn.

Re: Web Framework Benchmarks Round 5

#27
post #25

Please add Phusion Passenger ( https://www.phusionpassenger.com/ ) to the benchmark for Ruby apps. Right now Unicorn is the only server in that benchmark for Ruby but it's far from the only available server.

Round 1 used Passenger, but the feedback we got was that Unicorn performed better so we switched to that. Currently, we're aiming to show each framework in the best possible production configuration. In the future we plan to show multiple web/app servers per framework so that you could compare Ruby on Passenger vs. Ruby on Unicorn.

Passenger has some config options to spawn more processes and help the load. But the results will not be much different from unicorn/thin/whatever. Maybe in units of %.

Re: Web Framework Benchmarks Round 5

#28
post #23

Thank you so much for finally including the ASP.NET/IIS/Windows stack. I understand that it was a user contribution. This finally gives me something to compare the other stacks against. I realize that Windows/IIS and Linux/Apache|nginx is apples and oranges but it's still nice!

Note that I submitted a pull request to have JSON.net and ServiceStack.Text as serializers as well.

http://www.servicestack.net/benchmarks/

Re: Web Framework Benchmarks Round 5

#29
post #25

Please add Phusion Passenger ( https://www.phusionpassenger.com/ ) to the benchmark for Ruby apps. Right now Unicorn is the only server in that benchmark for Ruby but it's far from the only available server.

Round 1 used Passenger, but the feedback we got was that Unicorn performed better so we switched to that. Currently, we're aiming to show each framework in the best possible production configuration. In the future we plan to show multiple web/app servers per framework so that you could compare Ruby on Passenger vs. Ruby on Unicorn.

There is a simple explanation for that. Phusion Passenger always proxies data from the web server to another process, for stability and security reasons. If you benchmark Unicorn directly, without putting it behind a reverse proxy, Unicorn will look faster simply because you're avoiding another kernel socket operation.

However as I explained in https://news.ycombinator.com/item?id=5727232, Unicorn is always supposed to be put behind a reverse proxy. If you do that you should find different results.

Also, there's a lot of tuning in Phusion Passenger that can help performance. The default is optimized for usability and stability. For example if you don't prespawn processes, and let Phusion Passenger spawn them on the first request, you'll be adding tens of seconds to the benchmark time, which would greatly disadvantage Phusion Passenger in an unfair manner. You should set at least:

passenger_min_instances

passenger_max_pool_size

passenger_pre_start

Re: Web Framework Benchmarks Round 5

#30
It would be nice to add Beego [1], as I'm currently learning Go from an ebook written by the author of the framework [2][3], and it would be nice to see how it performs. Thanks for your hard work!

[1] https://github.com/astaxie/beego

[2] https://github.com/Unknwon/build-web-application-with-golang... English translation

[3] https://github.com/astaxie/build-web-application-with-golang Original version in Chinese

Post reply on HN