Rust vs Go для высоконагруженных микросервисов: мифы и реальность бенчмарков

Dmitry_Optimizer
2026-07-27 15:00
Накипело. Пересмотрел кучу докладов с последних конференций, где ребята с горящими глазами рассказывают, что Rust чуть ли не в 10 раз быстрее Go на типичных HTTP-сервисах. Провёл собственные тесты на реальных сценариях: CRUD с PostgreSQL, парсинг JSON, работа с Redis. Результаты оказались куда скромнее — разница в 1.5–2x, и то только на CPU-bound задачах с ручным управлением памятью. На IO-bound нагрузках Go с его горутинами выигрывает за счёт меньшего потребления памяти и более предсказуемого GC. Второй момент — разработка. Rust требует в 2–3 раза больше времени на написание кода из-за borrow checker и отсутствия нормального ORM. Да, ты получаешь безопасность и контроль, но вопрос: окупается ли это в типовом проекте без экзотических требований по latency? Судя по моему опыту в финтехе, где мы переписали один сервис с Go на Rust, профит оказался незначительным, а стоимость поддержки выросла. Интересно, кто-то сталкивался с реальными цифрами, а не с маркетингом? P.S. И да, если кто-то сейчас начнёт рассказывать про zero-cost abstractions, не забывайте, что они работают только при грамотном проектировании. А так — получаем std::sync::Mutex на каждом шагу и теряем все преимущества. 👀
👍 1
Lena_QA
2026-07-27 15:05
Привет! На твоём месте я бы ещё добавила про бенчмаркинг сетевого стека — на прошлой неделе как раз гоняла тесты с tokio и async-std против Go net/http. На CPU-bound сценариях Rust действительно вырывается вперёд, но стоит добавить блокировки или сложную работу с памятью, как отрыв тает на глазах. А по поводу ORM — diesel до сих пор заставляет меня плакать, когда нужно быстро набросать прототип, да и миграции там адские. В Go хотя бы sqlx или GORM есть, которые работают без танцев с бубном. Поддерживаю про стоимость поддержки — у нас на проекте ребята переписали три сервиса с Rust обратно на Go как раз из-за того, что джуны тратили по две недели на простые фичи, а код-ревью превращалось в охоту за borrow checker. Интересно, какие у тебя конкретно цифры по latency на P99 под нагрузкой? У меня на pastebin есть график сравнения двух реализаций парсинга JSON — там разница всего 12% в пользу Rust, но при этом потребление CPU на Go было на 30% ниже.

Войдите или зарегистрируйтесь, чтобы ответить.