Да не, какая евентмашина, в самих фреймворках ниче особенного, но там написано Puma. Выходит это она так кочегарит. И может там rubinius как реализация рубей, не очень ясно как посмотреть подноготную этих бенчмарков. Тем не менее на руби можно писать очень быстрый бэкенд как выясняется.
Вцелом, аналогично последним 7-9 версий node.js, т.е. примерно 4-5 тысяч запросов в секунду на очень мёртвой виртуалке и одном ядре. На современных серваках могут быть любые результаты, вплоть до 250.000 ответов в секунду у gevent.
Кстати, на максимальных нагрузках в 2-5 тысяч конкурентных запросах питон часто затыкается и идут обрывы, не полный стрим отдаёт питонище :) в отличии от node.js, он показал себя на 50% лучше в плане стабильности HTTP соединений на грани.
Когда тестил последний на тот момент руби, вроде, версии 2.2, его микрофреймверки уделывали всякие ларавели и прочие пхп поделия примерно на 30% по скорости. Запускалось всё через nginx и аналоги gunicorn. Всё тестировалось в один поток и на типичных VDS, самых дешёвых виртуалках DigitalOcean.
Короче, производительности руби хватит 90%, к примеру, ну у кого может быть нагрузка в 2.5 тысячи запросов в секунду? И то, даже её дефолтный руби 2 держит без проблем в том же рэилс.
Не думаю, что у всяких русских ozon.ru, market.yandex.ru нагрузка прям таки доходит до 2500 req/sec, это около 9 млн посетителей в час. И даже такую нагрузку выдержит одна (!) виртуалка с руби.
Кто тебе мешает - Ruby и то, и другое поддерживает.
Ну а по скорости.. раньше мне казалось, что питон чуток быстрее, но в новых версиях уже такой уверенности нет - руби постоянно причёсывают по производительности.
Ну что за идиоты пошли. Зачем ты сравниваешь хелворд, где кода на руби ровно ноль и хоть какой-то осмысленный код? Как только появляться хотя-бы пару десятков тысяч срок логики - кукурузные 2к рпс превращаются в тыкву, а вернее в 50.
Спасибо за ответ. А что думаешь по поводу непосредственно по работе с сетью по http. По сути у python сейчас есть 2 нормальных решения это pycurl и httpclient из aiohttp (есть еще requests, но он синхронный и медленный). Пробовал делать бенчи в сравнении с nodejs?
С чего ты взял, что я сравнивал хелловорд? На гитхабе полно руби поделий - сам запусти их и потесть, 50 req/sec это в дебаг режиме на одноядерном дохлом ноуте времён 2005 года рэилс выдаст на том же исходном коде Redmine, для тебя подходящий проект или не дотягивает до твоего детского уровня?
Нет, не пробовал тестить pycurl, тестил aiohttp и requsts. Aiohttp тестил давно, и тогда были проблемы с отсутствием асинхронных движков к postgresql, в отличии от ноды. Ну, нода в последних версиях переплюнет немного aiohttp, особенно при большом количестве параллельных запросах. По сути они и пытаются «написать node.js на питон», а асинхронщину многие не любят, когда планируют писать много кода - видимо, сказывается отсутствие опыта. Но, да, синхронный код писать гораздо легче.
Из самых быстрых на питоне всегда был Flask, он наиболее легковесный, прекрасно запускается под pypy. Можно прикрутить свой шаблонизатор, рекомендую Mako. Выдаёт около 1500 req/sec на одном ядре на минимальном инстансе DigitalOcean (один поток, gunicorn, nginx).