C# (.NET) против конкурентов: результаты бенчмарка 2025
В начале 2025 года независимое сообщество разработчиков TechEmpower и команда .NET Foundation опубликовали обновлённые результаты бенчмарков производительности для популярных языков и фреймворков. Традиционно лидирующие позиции в задачах веб-API и высоконагруженных сервисов удерживает экосистема .NET. В этой статье разбираем, как C# показал себя в сравнении с Python, Java, Go и Rust.
Методология тестирования
Бенчмарк проводился на идентичных облачных серверах (8 vCPU, 32 GB RAM, SSD NVMe) под управлением Ubuntu 24.04 LTS. Тестировались следующие сценарии:
- JSON-сериализация — возврат простого объекта в формате JSON (имитация REST API).
- Многопоточная обработка — параллельная работа с 64 конкурентными запросами.
- Работа с БД — 100 000 операций чтения/записи через Entity Framework (C#), Hibernate (Java), SQLAlchemy (Python) и GORM (Go).
- Алгоритмическая нагрузка — сортировка массивов и криптографические хеши.
Результаты: кто в лидерах?
По итогам замеров C# на .NET 9 занял уверенное второе место, уступив лишь Rust (средний прирост скорости 4–7% за счёт AOT-компиляции). Однако ключевые показатели говорят сами за себя:
- JSON-сериализация (запросов/сек): C# — 1 520 000, Go — 1 410 000, Java — 1 200 000, Python — 320 000.
- Многопоточность (ускорение на 64 потоках): C# — 42x, Java — 38x, Go — 35x, Python — 8x (GIL-ограничение).
- Работа с БД (операций/сек): C# — 85 000, Go — 81 000, Java — 74 000, Python — 22 000.
- Потребление памяти на 1 000 запросов: C# — 12 MB, Rust — 8 MB, Go — 15 MB, Java — 28 MB, Python — 45 MB.
Почему C# выигрывает?
Экосистема .NET продолжает активно развиваться. В версии .NET 9 были внедрены следующие оптимизации:
- Новый JIT-компилятор (Tiered PGO) — подстраивает код под реальные паттерны выполнения.
- Native AOT — предварительная компиляция в машинный код, сокращающая время старта до 50 мс.
- Библиотека
System.Text.Json— одна из самых быстрых реализаций сериализации среди всех языков. - Асинхронные потоки (IAsyncEnumerable) — минимальные накладные расходы на I/O.
Выводы для разработчиков
Если вы выбираете стек для высоконагруженного микросервиса, C# (.NET) — однозначный кандидат в топ-3. Он значительно быстрее Python (в 4–5 раз на типовых задачах), стабильно обходит Java по скорости и потреблению памяти, а по удобству разработки и наличию инструментов (IDE, дебаггер, профайлер) превосходит Go и Rust. Единственный минус — лицензирование для коммерческих проектов (требуется лицензия Visual Studio для Enterprise-функций), но Community-версия покрывает большинство потребностей.