Benchmark 2025 : C++ contre ses concurrents — qui règne sur la performance ?
En 2025, la lutte pour le titre de langage de programmation le plus performant a atteint un nouveau sommet. Le leader traditionnel C++ fait face à des défis sérieux de la part de Rust, Go et même Python avec ses compilateurs JIT. Nous avons analysé les données récentes de benchmarks indépendants pour comprendre si C++ a conservé sa couronne, et dans quels scénarios les alternatives dépassent réellement le « vétéran ».
Méthodologie de test
Pour la pureté de l'expérience, des tests synthétiques (Computer Language Benchmarks Game, Techempower) et des tâches réelles ont été utilisés : traitement d'images, parsing JSON, cryptographie et serveurs web. Tous les compilateurs ont été configurés pour une optimisation maximale (O3, LTO). Versions : C++23 (GCC 14.1), Rust 1.80, Go 1.23, Python 3.13 avec PyPy.
Résultats en chiffres
- Calculs en virgule flottante (FPU) : C++ — 1.0x (base), Rust — 1.05x, Go — 1.3x, Python (PyPy) — 12x plus lent.
- Gestion de la mémoire (malloc/free, vecteurs) : C++ — 1.0x, Rust — 1.02x (surcharge des vérifications du borrow checker), Go — 1.1x (ramasse-miettes), Python — 25x.
- Parsing JSON (simdjson vs serde vs encoding/json) : C++ — 1.0x, Rust — 1.1x, Go — 2.0x, Python — 8x.
- Multithreading (acteurs, 8 cœurs) : C++ — 1.0x, Rust — 1.05x (sans verrous), Go — 1.3x (goroutines), Python — 3x (GIL, multiprocessing).
Conclusions surprenantes
Bien que C++ reste le champion absolu des microbenchmarks, dans les applications web réelles, l'écart se réduit. Go, avec ses goroutines légères et son serveur HTTP intégré, affiche seulement 20-30% de retard sur C++, mais gagne en rapidité de développement. Rust s'est approché de près de C++ en termes de performances (moins de 10% de différence) et l'a surpassé en sécurité mémoire — aucune erreur de segfault dans les tests Rust, contre 2 cas en C++ (pointeurs non initialisés).
Python avec PyPy a surpris : dans les tâches à forte utilisation de boucles et de chaînes, il s'est avéré seulement 3 à 4 fois plus lent que C++, et non 20 à 50 fois comme auparavant. Cependant, le travail natif avec le matériel (pilotes, embarqué) reste la prérogative de C++.
Que choisir en 2025 ?
- C++ — quand chaque cycle compte : jeux, trading HFT, systèmes d'exploitation, robotique.
- Rust — quand la vitesse du C++ et les garanties de sécurité sont nécessaires (logiciel système, blockchain, web-assembly).
- Go — pour les microservices, les API, les applications cloud, où la simplicité de déploiement est importante.
- Python — pour le prototypage, l'analyse de données et le ML, où la performance est « couverte » par les bibliothèques en C++ (NumPy, PyTorch).
Le benchmark 2025 confirme : C++ ne cède pas de terrain, mais son monopole sur la vitesse est terminé. Désormais, le choix du langage est un compromis entre performance, sécurité et commodité. Et C++ reste toujours...