Сравнение python web-фреймворков

Benchmark python frameworkТоже интересная тема, сравнительный нагрузочный тест 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 не оказался в лидерах. Во-вторых, безусловного лидера нет, под каждую задачу надо выбирать лучший для неё фреймворк. Анализировать проект, выяснять, на какие операции приходится основная нагрузка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *