Большое спасибо за ваш тест. Теперь я понял, что вы имели ввиду. Ниже habrahabr.ru/post/228455/#comment_7741325 я ответил почему использовал разные версии Python во время тестирования.
Я очень не хотел писать на Python 2 и это было почти невероятным событием для меня. Но я думал так — если я найду какое-то решение, которое будет уходить в отрыв и будет поддерживать только Python 2, то это станет поводом копать в сторону этого решения.
Так стало как раз с Gevent, который официально не поддерживает 3-ий Python, но есть форк, который поддерживает. Я бы, честно говоря, и использовал сейчас именно этот форк, если бы не реализация asyncio в python 3.4. Вы можете сказать, что я должен был сравнить производительность этого форка Gevent с тем же Tornado на 3-их версиях и я с вами соглашусь.Трудность здесь, как я написал в статье, с выделенным количеством времени на мое исследование. Для меня это мог стать бесконечный процесс, который закончился бы каким-нибудь Erlang'ом.
Если бы я тогда последовал принципу проверить все на Python 2, что бы сравнение между фреймворками было более честным, и выиграл бы Tornado или любой другой фреймворк, который поддерживает Python 3, то я бы безусловно захотел использовать именно 3-юю версию с ним, а тогда мне пришлось бы все равно запускать тесты еще и на 3-ей версии Python.
Я использовал каждый фреймворк с последний версией Python, которую он поддерживает. Я бы не стал использовать 2-ую версию Python в новом проекте даже в случае более высокой производительности. Другими словами, я не вижу смысла использовать Tornado со 2-ой версией Python в то время, когда он поддерживает 3-юю. С версией ruby вы правы, я проглядел, виной тому стабильный дистрибутив Debian, я думаю.
Спасибо за замечание. EventMachine я в тесты добавил просто для сравнения, как и node.js. Я с самого начала не планировал их использовать в своем проекте. Производительность у него действительно отличная. У меня было желание проверить его с раздачей файлов, но время на исследование было ограничено.
Цель была выяснить не производительность процессора, а производительность разных фреймворков. Зная производительность на 1 ядре я могу примерно понять производительность на 2-ух и более.
Я сравнил только для текста с EventMachine. Когда я дошел до теста с раздачей файлов, я уже для себя решил, что буду использовать Python. Поэтому такой тест не проводил, к сожалению.
Так стало как раз с Gevent, который официально не поддерживает 3-ий Python, но есть форк, который поддерживает. Я бы, честно говоря, и использовал сейчас именно этот форк, если бы не реализация asyncio в python 3.4. Вы можете сказать, что я должен был сравнить производительность этого форка Gevent с тем же Tornado на 3-их версиях и я с вами соглашусь.Трудность здесь, как я написал в статье, с выделенным количеством времени на мое исследование. Для меня это мог стать бесконечный процесс, который закончился бы каким-нибудь Erlang'ом.
Если бы я тогда последовал принципу проверить все на Python 2, что бы сравнение между фреймворками было более честным, и выиграл бы Tornado или любой другой фреймворк, который поддерживает Python 3, то я бы безусловно захотел использовать именно 3-юю версию с ним, а тогда мне пришлось бы все равно запускать тесты еще и на 3-ей версии Python.