Comments 15
Где исходники? Какой драйвер PostgreSQL использовался? С какими аргументами вызывался ab? Почему у Gunicorn не выставили количество воркеров в 1 для честного сравнения?
Какой драйвер PostgreSQL использовался?
Указано под спойлером, asyncpg и psycopg2.
С какими аргументами вызывался ab?
ab -n 10000 -c 100 host:port/
количество воркеров в 1
Задача стояла замерить только максимальную производительность. По-хорошему, нужно было бы честно строить графики зависимости от числа одновременных соединений, воркеров, загрузки процессора и т.д. Но это уже тянет на серьёзную статью и требует врмени. А так — вы правы, с одим воркером асинхронное приложение выигрывает по производительности.
Запрос у вас жутковатый, интересно прям explain его глянуть.
Колоночный подзапрос я бы на join переложил с window function или группировкой
Хотя я бы число прямых потомком денормализовал, перевычислять его каждый раз при выполнении select — жуть.
Колоночный подзапрос я бы на join переложил с window function или группировкой
Хотя я бы число прямых потомком денормализовал, перевычислять его каждый раз при выполнении select — жуть.
На самом деле, сравнение асинхронных и многопоточных приложений не совсем корректно — они решают разные задачи.
В данном случае приложения решают одну и ту же задачу. Как Apache и nginx — вполне правомерно сравнивать на задачах типа отдачи статики
Вы можете с помощь gunicorn запустить aiohttp на всех ядрах процессора. Раздел Server Deployment в документации aiohttp.
есть же сравнение (почти) всех фреймворков www.techempower.com/benchmarks
У джанго ужасно тормозной шаблонизатор =) Фикситься это заменой шаблонизатора
Какие интересные результаты. Но прямо порадовали, значит можно и дальше пользоваться Джанго и не переживать, спасибо!
Еще бы тут Нода была, было бы вообще замечательно… хотя это уже не Питон.
Еще бы тут Нода была, было бы вообще замечательно… хотя это уже не Питон.
FastAPI?
Выше RekGRpth дает ссылку на сравнение огромного числа фреймворков. Там, правда, не только про питон.
У меня не хватило времени даже на сравнение со встроенным в Django (начиная с 3.0) ASGI, тут просто путевая заметка, которая как бы намекает, что вещи иногда могут быть не такими, какими кажутся, или какими их принято считать :)
У меня не хватило времени даже на сравнение со встроенным в Django (начиная с 3.0) ASGI, тут просто путевая заметка, которая как бы намекает, что вещи иногда могут быть не такими, какими кажутся, или какими их принято считать :)
Однозначно. Учитывая что код остается практически тем-же
Sign up to leave a comment.
Ещё раз о производительности фреймворков Python для веб разработки