Benchmarking Tornado vs. Twisted Web vs. Tornado on Twisted vs. Unicorn
antoniocangiano.com
antoniocangiano.com
PS: I'm about to update my post with the results from Thin and evma_httpserver.
PS2: My post has been updated.
EventMachine consists of an extension library written in C++ (which can be
accessed from languages other than Ruby)
So the post compares pure Python web frameworks with a C++ library. And not even a good library based on Boost/Asio or libevent.It is possible they are better at this problem than others, but that is very unlikely, from experience. As a developer it isn't wise to do a reliability test on a new library by yourself.
Making a portable async framework is quite error-prone because of the heterogenous situations it could face. You can witness this reading libevent's evolution over the years. And those developers are as good unix coders as you can possibly get with vast experience on the subject (since mid 90s.) I bet the Boost/Asio guys are very good C++ coders too, Boost is as close as you can get to STL.
At a glance, http://rubyeventmachine.com/ doesn't state why a new C++ async library. They only mention the Reactor Pattern, and Boost/Asio supports it:
http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/ove...
The benchmark eventually resumes 10-30 seconds later. It seems OS X can't free up closed ports fast enough.
I've tried this with numerous HTTP servers (including Apache) and both ApacheBench and Siege, so it seems like it's an OS problem.