Обновить

async def или def в FastAPI: как одна строчка делает сервис в 40 раз медленнее

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K
Всего голосов 22: ↑21 и ↓1+23
Комментарии5

Комментарии 5

Ну, во первых, это проблема не только FastAPI. Это следствие концепции и технологии asyncio, которая лежит в базе.

А во вторых, в 3.14 завезли no-GIL режим, который позволяет полноценные потоки и multithreading, но тут надо помнить про все нюансы необходимости синхронизации. И тут как раз вылезает отсутствие нормальных примитивов синхронизации в питоне.

А так-то да, все по делу

Спасибо за дополнение, всё верно. Единственная оговорка про no-GIL: он поможет замеру 3, где CPU-нагрузка в потоках, а замер 1 останется таким же: блокирующий вызов внутри корутины держит event loop независимо от GIL.

И как в этом языке с интеграцией с библиотеками написанными на условном си?

В условном го с интеграцией с си +/- все так же, как в питоне

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации