Начинаем новый год с видео сравнения скоростей разных бэкенд-стеков для веба. Это не первый видос из серии, но именно он запомнился из-за шутки Антона Кулинского:
"... Кстати! Если весь стек Python'а написан на Rust'е, то это так называемый, PythoRust-стек? Подумайте об этом ..." 😂
Ну а смысловая нагрузка здесь тоже есть. Показывается сравнение не классического стека для 👩💻 Python - LiteStar и Granian с классическим 👩💻 Go и слегка прокачанным 👩💻 Rust (заменили стандартный аллокатор на jemalloc).
Ну и сравнение (на localhost 👩💻):
- Python: 140.000 rps / самый долгий запрос: 50ms
- Go: 178.000 rps / самый долгий запрос: 2.5ms
- Rust: 192.000 rps / самый долгий запрос: 1.2ms
Интересно, что чистый Go обогнал чистый Rust, но не на много. Добавив аллокатор jemalloc в Rust, результаты снова склонились в сторону Rust.
Для статических ручек, возвращающих строку "Hello World", результаты Python и Rust (чистого, без jemalloc) оказались достаточно близки для того, чтобы слегка переписать уже существующий проект, использующий Flask, FastApi или еще что-нибудь именно на LiteStar и Granian, если производительность действительно важна.
Такие замеры не очень интересны, так как ручка, которую дергал wrk - статическая. В проде же часто встречаются динамические ручки (те, что содержат переменные в пути, например, /users/{id}) и парсинг параметров.
В конце производится более интересное сравнение - в игру вступает PostgreSQL. Теперь запросы дергают статическую ручку, которая селектит в БД данные по заказам.
И теперь результаты такие:
- Python: 11.500 rps / самый долгий запрос: 82ms
- Go: 30.500 rps / самый долгий запрос: 98ms
- Rust: 46.500 rps / самый долгий запрос: 81ms
Теперь в тесте поучаствовали еще драйвер БД и сама БД. Тем не менее - очередность по производительности не поменялась. Задержки пришли плюс-минус к одим значениям, а вот по RPS Python сдал, причем сильно.
Сам Антон Кулинский снимает крутые и забавные видосы на тему разработки. Есть пара крутых видосов про Git: База по Git с сравнением merge с rebase и реакция на видео ExtremeCode, где тот признался, что не умеет в Git. И еще пара видосов на тему Computer Science про кэш процессора и выравнивание памяти.
Не каждый поймет юмор Антона, но рассказывает он действительно полезные вещи. Если что, вот его канал.
В этом посте были ссылки, но мы их удалили по правилам Сетки
· 20.01
Что-то сетка не удалила ссылки... Сообщение было переслано из Telegram канала: https://t.me/digit4lsh4d0w\_channel/57
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён