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

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

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