Go против конкурентов: итоги бенчмарков 2025 года
В 2025 году язык Go (Golang) продолжает укреплять свои позиции в сегменте облачных сервисов, микросервисов и высоконагруженных бэкендов. Однако конкуренция со стороны Rust, Python (с C-расширениями) и классического C++ становится всё более интересной. Мы проанализировали свежие бенчмарки от сообщества TechEmpower и независимых лабораторий, чтобы понять, где Go всё ещё впереди, а где уступает.
Методология тестирования
Все замеры проводились на одинаковом оборудовании (AMD EPYC 64 ядра, 256 ГБ RAM, NVMe SSD) под Ubuntu 24.04 LTS. Тесты включали:
- HTTP-сервер — обработка 10 000 запросов/с с JSON-ответом (Fasthttp vs Actix vs Node.js vs Sanic)
- Вычисления — умножение матриц 2048×2048 (CPU-bound)
- Потребление памяти — idle-режим после загрузки 100 тыс. объектов
- Скорость компиляции — время сборки среднего проекта (~50 файлов)
Результаты бенчмарков
Вот ключевые цифры (Go принят за 100% в каждой категории):
- HTTP-пропускная способность: Go — 100% (1.2 млн req/s), Rust — 115%, C++ — 130%, Python (uvicorn) — 20%.
- Вычислительная производительность: Go — 100%, Rust — 108%, C++ — 135%, Python (NumPy) — 45% (с C-бекендом).
- Потребление памяти (на 10 тыс. горутин/потоков): Go — 4.2 MB, Rust — 3.8 MB, C++ — 5.1 MB, Python — 89 MB.
- Скорость компиляции: Go — 0.8 сек, Rust — 4.2 сек, C++ — 7.1 сек, Python — 0.1 сек (интерпретация).
Анализ: чем Go выигрывает в 2025?
Несмотря на то, что Rust и C++ показывают лучшую «сырую» производительность в вычислениях, Go сохраняет лидерство в веб-среде благодаря трём факторам:
- Горутины: лёгкие потоки с накладными расходами ~4 КБ против 1 МБ у системных потоков C++.
- Сборка мусора: в версии Go 1.24 задержки GC снижены до 0.5 мс при 95% нагрузке, что приближается к ручному управлению памятью Rust.
- Экосистема: стандартная библиотека покрывает 90% задач бэкенда без внешних зависимостей.
Python остаётся королём прототипирования и ML, но для продакшн-нагрузок Go предлагает в 4-5 раз большую пропускную способность при том же бюджете CPU.
Выводы для разработчиков
Если ваш проект — высоконагруженный API, стриминг данных или облачный сервис, Go остаётся оптимальным выбором в 2025 году. Rust — для систем с жёсткими требованиями к безопасности памяти (драйверы, ядра). C++ — для игр и embedded. Python — для быстрых прототипов и Data Science.
Полные таблицы бенчмарков и исходный код тестов доступны в репозитории TechEmpower Framework Benchmarks.