Rust High Performance
Rust High Performance
Résumé :
Introduction
Le livre « Rust High Performance » (auteur Iban Eguia Moraza, 2018, 366 pages) est un guide pratique pour écrire du code aussi rapide et efficace que possible en langage Rust. Contrairement à de nombreux supports d'introduction, ce livre se concentre spécifiquement sur la performance : des principes de base aux astuces de bas niveau avec unsafe et SIMD. Il sera utile aux développeurs qui connaissent déjà les bases de Rust et souhaitent en tirer le meilleur parti.
De quoi parle le livre
Le livre est construit comme une immersion progressive dans le monde de l'optimisation. L'auteur commence par des concepts généraux (temps d'exécution, complexité algorithmique) et passe progressivement à des sujets spécifiques à Rust : gestion de la mémoire, profilage, parallélisme, utilisation du code unsafe, instructions SIMD et interaction avec C. Chaque chapitre contient non seulement de la théorie, mais aussi des exemples pratiques avec du code que l'on peut exécuter et tester.
Sujets principaux
- Profilage et benchmarking (cargo bench, perf, flamegraph).
- Optimisation de la gestion de la mémoire : pile, tas, allocateurs, défauts de cache.
- Parallélisme et concurrence : threads, async/await, canaux, structures lock-free.
- Code sûr et non sûr : quand et comment utiliser unsafe.
- SIMD (Single Instruction Multiple Data) pour les opérations vectorielles.
- FFI (Foreign Function Interface) — appel de bibliothèques C et optimisation de l'interface.
- Optimisations du compilateur : flags, LTO, optimisation au moment de l'édition de liens.
Pour qui est ce livre
Le livre est destiné aux développeurs déjà familiers avec Rust (syntaxe, possession, emprunt). Si vous commencez tout juste à apprendre le langage, il est préférable de lire d'abord « The Rust Programming Language » ou « Rust in Action ». Mais si vous avez déjà écrit quelques projets et souhaitez comprendre comment les rendre plus rapides, ce livre est pour vous.
Ce que le lecteur apprendra
- Comment profiler correctement les applications Rust et trouver les goulots d'étranglement.
- Comment écrire des benchmarks et interpréter leurs résultats.
- Comment la mémoire est organisée en Rust et comment minimiser les allocations.
- Comment utiliser unsafe en toute sécurité pour améliorer les performances.
- Comment appliquer les instructions SIMD pour le traitement des données.
- Comment organiser des calculs parallèles sans conditions de concurrence.
- Comment optimiser l'interaction avec les bibliothèques C.
- Quels flags du compilateur et paramètres Cargo affectent la vitesse.
Points forts
- Orientation pratique. Presque chaque chapitre contient du code prêt à l'emploi que l'on peut immédiatement essayer.
- Immersion approfondie dans unsafe. De nombreux livres évitent ce sujet, alors qu'ici un chapitre entier lui est consacré avec des exemples.
- Accent sur les outils. Sont détaillés perf, Valgrind, cachegrind, flamegraph — ce que les professionnels utilisent réellement.
- Modernité (à l'époque de sa sortie). Le livre couvre l'édition Rust 2018 et les crates pertinents de l'époque.
Inconvénients
- Obsolescence. Depuis 2018, Rust a beaucoup changé : async/await est apparu (stabilisé en 2019), de nouveaux outils de profilage. Certains exemples peuvent ne pas compiler sans adaptation.
- Manque de couverture sur async. Le livre est sorti avant la stabilisation d'async/await, donc ce sujet est traité superficiellement.
- Difficulté pour les débutants. Comme déjà mentionné, une connaissance solide des bases de Rust est requise.
À qui est-il recommandé
- Développeurs Rust qui souhaitent passer d'un « code qui fonctionne simplement » à un « code rapide ».
- Ingénieurs travaillant sur des systèmes à forte charge, jeux, bases de données, services réseau.
- Ceux qui s'intéressent à l'optimisation bas niveau et sont prêts à travailler avec unsafe.
- Étudiants et enseignants de cours de programmation système.
Conclusion
« Rust High Performance » est un ouvrage de qualité, bien que légèrement obsolète
Recommendations
Go (Golang) pour débutants : cours complet
Développement d'API en JavaScript (Node.js)
PHP pour la data science : Traitement et analyse de données en PHP
Sécurité des applications Kotlin : des bases aux techniques avancées
Réusinage de code JavaScript (Node.js)
Entretien C++ : 200 questions et réponses