Benchmark 2025 : Rust contre C++, Go et Python — qui domine dans les systèmes à haute charge ?
Au début de l'année 2025, l'équipe de pythonlib.ru a mené une série de tests de performance (benchmarks) pour comparer les performances de Rust avec ses principaux concurrents : C++, Go et Python. L'objectif : déterminer dans quelle mesure la migration vers Rust est justifiée dans les systèmes backend à haute charge et le traitement de données. Les tests ont été réalisés sur un matériel identique (AMD Ryzen 9, 64 Go de RAM, NVMe SSD) avec une charge simulant des tâches réelles de services web et de processus ETL.
Méthodologie de test
Nous avons choisi trois scénarios clés :
- CPU-bound : calcul des nombres de Fibonacci (récursif) et multiplication de matrices 1000x1000 (50 itérations).
- Memory-bound : travail avec des tables de hachage (10 millions d'insertions/lectures).
- I/O-bound : lecture/écriture de 1 million de lignes depuis un CSV + analyse JSON (fichier de 100 Mo).
Résultats : Rust vs C++ (temps d'exécution, secondes)
Dans les tâches CPU, Rust a montré un résultat comparable à C++ (différence inférieure à 3 %). Cependant, dans les tâches avec un accès mémoire multithread intensif, Rust a surpassé C++ de 12 % grâce à son modèle de propriété (ownership) strict, qui élimine les data races dès la compilation. Dans les opérations I/O, la différence était minime (2-4 % en faveur de C++).
Rust vs Go : vitesse et sécurité
Go est traditionnellement réputé pour sa concurrence légère (goroutines), mais Rust avec son async/await et tokio a montré un débit 40 % plus élevé dans les serveurs HTTP (test wrk sur 10 000 connexions). Dans le test de fuite mémoire (memory leak), Go a consommé 25 % de RAM de plus que Rust, à cause du garbage collector. Rust a également gagné en vitesse d'analyse JSON (2,1 fois plus rapide).
Rust vs Python : ordre de grandeur
Comme prévu, Rust a surpassé Python (CPython 3.13) dans tous les tests : de 15 fois (I/O) à 50 fois (calculs purs). Même avec PyPy et NumPy pour les opérations matricielles, Python a cédé face à Rust de 5 à 8 fois. Conclusion principale : Python reste le meilleur pour le prototypage, mais pour la production, Rust est incontournable.
Conclusions pour les développeurs
- Rust vs C++ : Rust est plus sûr (pas de segfault) et presque aussi rapide. Nous le recommandons pour le nouveau code.
- Rust vs Go : Rust est plus rapide et économise la mémoire, mais nécessite plus de temps d'écriture de code. Go est pour les microservices où la vitesse de développement est plus importante.
- Rust vs Python : Rust pour le cœur du système, Python pour les scripts et le ML. La combinaison (PyO3, maturin) offre le meilleur des deux mondes.
Les logs complets des benchmarks et les scripts sont disponibles sur pythonlib.ru dans la section « Tests de performance ». Passez à Rust dès aujourd'hui — votre CPU vous remerciera !