Pull to refresh

Comments 15

Где исходники? Какой драйвер PostgreSQL использовался? С какими аргументами вызывался ab? Почему у Gunicorn не выставили количество воркеров в 1 для честного сравнения?

Какой драйвер PostgreSQL использовался?

Указано под спойлером, asyncpg и psycopg2.

С какими аргументами вызывался ab?

ab -n 10000 -c 100 host:port/

количество воркеров в 1

Задача стояла замерить только максимальную производительность. По-хорошему, нужно было бы честно строить графики зависимости от числа одновременных соединений, воркеров, загрузки процессора и т.д. Но это уже тянет на серьёзную статью и требует врмени. А так — вы правы, с одим воркером асинхронное приложение выигрывает по производительности.
ab -n 10000 -c 100 host:port/

Попробуйте добавить -k. К слову сказать, asyncpg должен заметно уделывать psycopg2 по производительности

Попробовал.
KeepAlive никак не повлиял на Gunicorn, а вот число запросов AIOHTTP подросло процентов на 25 локально, спасибо за информацию.
Запрос у вас жутковатый, интересно прям explain его глянуть.
Колоночный подзапрос я бы на join переложил с window function или группировкой
Хотя я бы число прямых потомком денормализовал, перевычислять его каждый раз при выполнении select — жуть.
Запрос взят из первого попавшегося проекта, мне просто было важно, чтобы он был, иначе цифры бенчмарка зашкаливают. Подзапросы я тоже не очень люблю, если руки дойдут — оптимизирую обязательно, спасибо.
На самом деле, сравнение асинхронных и многопоточных приложений не совсем корректно — они решают разные задачи.

В данном случае приложения решают одну и ту же задачу. Как Apache и nginx — вполне правомерно сравнивать на задачах типа отдачи статики

Вы можете с помощь gunicorn запустить aiohttp на всех ядрах процессора. Раздел Server Deployment в документации aiohttp.

Я знаю про возможность параллельного запуска асинхронных приложений. Скорее всего, я зря включил первую диаграмму в эту заметку, сравнение со standalone сервером, действительно, некорректно.

На самом деле меня удивили показатели Django, имеющего репутацию «медленного» фреймворка, эта заметка о нем.
У джанго ужасно тормозной шаблонизатор =) Фикситься это заменой шаблонизатора
Какие интересные результаты. Но прямо порадовали, значит можно и дальше пользоваться Джанго и не переживать, спасибо!

Еще бы тут Нода была, было бы вообще замечательно… хотя это уже не Питон.
Выше RekGRpth дает ссылку на сравнение огромного числа фреймворков. Там, правда, не только про питон.

У меня не хватило времени даже на сравнение со встроенным в Django (начиная с 3.0) ASGI, тут просто путевая заметка, которая как бы намекает, что вещи иногда могут быть не такими, какими кажутся, или какими их принято считать :)

Однозначно. Учитывая что код остается практически тем-же

Sign up to leave a comment.

Articles