Тоже интересная тема, сравнительный нагрузочный тест Python Web-фреймворков. Тест не новый, 2015 год, но вряд ли он потерял актуальность.
Сравнивались восемь фреймворков:
Aiohttp, v.0.16.3 Bottle, v.0.12.8 Django, v.1.8.2 Falcon, v.0.3.0 Flask, v.0.10.1 Muffin, v.0.0.88 Pyramid, v.1.5.7 Tornado, v.4.2
Нагрузочное тестирование производилось на Python 3.4 с помощью утилиты wrk.
В данном случае мне понравились сами тесты:
- JSON-тест — закодировать небольшой объект в JSON и вернуть клиенту
- Remote-тест — загрузить ответ от другого сервера и вернуть его клиенту
- Complete-тест — посредством ORM загрузить коллекцию объектов из базы, добавить к ней еще один и отрендерить список в шаблоне
Это гораздо лучше соответствует реальным задачам web-разработки, чем большинство абстрактных сферических бенчмарков в вакууме. Техническая база присутствует на Гитхабе.
Результаты тестов
В первом тесте лидеры Falcon, Bottle, Pyramid и Flask
; во втором Aiohttp, Muffin и Tornado
; в третьем Aiohttp, Muffin и Bottle
.
Я сделал два вывода. Во-первых, ни в одном тесте Django не оказался в лидерах. Во-вторых, безусловного лидера нет, под каждую задачу надо выбирать лучший для неё фреймворк. Анализировать проект, выяснять, на какие операции приходится основная нагрузка.