C# (.NET) contre ses concurrents : résultats du benchmark 2025
Au début de l'année 2025, la communauté indépendante de développeurs TechEmpower et l'équipe de la .NET Foundation ont publié les résultats mis à jour des benchmarks de performance pour les langages et frameworks populaires. Traditionnellement, l'écosystème .NET occupe les premières places dans les tâches d'API web et de services à forte charge. Dans cet article, nous analysons comment C# s'est comporté par rapport à Python, Java, Go et Rust.
Méthodologie de test
Le benchmark a été réalisé sur des serveurs cloud identiques (8 vCPU, 32 Go de RAM, SSD NVMe) sous Ubuntu 24.04 LTS. Les scénarios suivants ont été testés :
- Sérialisation JSON — retour d'un objet simple au format JSON (simulation d'une API REST).
- Traitement multitâche — travail parallèle avec 64 requêtes concurrentes.
- Interaction avec la base de données — 100 000 opérations de lecture/écriture via Entity Framework (C#), Hibernate (Java), SQLAlchemy (Python) et GORM (Go).
- Charge algorithmique — tri de tableaux et hachages cryptographiques.
Résultats : qui est en tête ?
Selon les mesures, C# sur .NET 9 a pris une solide deuxième place, derrière seulement Rust (gain de vitesse moyen de 4 à 7 % grâce à la compilation AOT). Cependant, les indicateurs clés parlent d'eux-mêmes :
- Sérialisation JSON (requêtes/seconde) : C# — 1 520 000, Go — 1 410 000, Java — 1 200 000, Python — 320 000.
- Multitâche (accélération sur 64 threads) : C# — 42x, Java — 38x, Go — 35x, Python — 8x (limitation GIL).
- Interaction avec la base de données (opérations/seconde) : C# — 85 000, Go — 81 000, Java — 74 000, Python — 22 000.
- Consommation mémoire pour 1 000 requêtes : C# — 12 Mo, Rust — 8 Mo, Go — 15 Mo, Java — 28 Mo, Python — 45 Mo.
Pourquoi C# gagne-t-il ?
L'écosystème .NET continue de se développer activement. Dans la version .NET 9, les optimisations suivantes ont été introduites :
- Nouveau compilateur JIT (Tiered PGO) — adapte le code aux modèles d'exécution réels.
- Native AOT — compilation préalable en code machine, réduisant le temps de démarrage à 50 ms.
- Bibliothèque
System.Text.Json— l'une des implémentations de sérialisation les plus rapides parmi tous les langages. - Flux asynchrones (IAsyncEnumerable) — frais généraux minimes pour les E/S.
Conclusions pour les développeurs
Si vous choisissez une pile technologique pour un microservice à forte charge, C# (.NET) est un candidat incontestable dans le top 3. Il est nettement plus rapide que Python (4 à 5 fois sur les tâches typiques), dépasse régulièrement Java en vitesse et en consommation mémoire, et surpasse Go et Rust en termes de commodité de développement et de disponibilité des outils (IDE, débogueur, profileur). Le seul inconvénient est la licence pour les projets commerciaux (une licence Visual Studio est requise pour les fonctions Enterprise), mais la version Community couvre la plupart des besoins.