Performances des applications C++ : optimisation, profilage et accélération du code
Performances des applications C++ : optimisation, profilage et accélération du code
Résumé :
Les applications C++ modernes sont confrontées à des exigences croissantes en matière de vitesse et d'efficacité. Le livre « Performances des applications C++ » est un guide pratique qui vous aidera à transformer un code « qui fonctionne juste » en une solution haute performance. L'auteur, Alexeï Petrov, partage des techniques et stratégies éprouvées utilisées par les principaux développeurs de moteurs de jeux, de systèmes financiers et de serveurs à forte charge.
De quoi parle ce livre ?
Ce n'est pas un recueil de conseils abstraits. Vous parcourrez le cycle complet du travail sur les performances : de la détection des goulots d'étranglement à l'aide de profileurs (perf, Valgrind, Intel VTune) jusqu'à l'application d'optimisations de bas niveau. Une attention particulière est accordée à :
- La gestion de la mémoire : allocateurs, défauts de cache, alignement des données et pools d'objets.
- Le multithreading et la concurrence : minimisation des verrous, structures lock-free, opérations atomiques.
- L'optimisation des algorithmes et des structures de données : du choix du conteneur à l'utilisation des instructions SIMD.
- Les optimisations du compilateur : comment écrire du code qui s'entend bien avec l'optimiseur (RVO, constexpr, attributs).
- Le profilage et le benchmarking : comment éviter les erreurs de mesure et interpréter les résultats.
À qui s'adresse ce livre ?
- Développeurs C++ qui souhaitent améliorer les performances de leurs projets.
- Ingénieurs travaillant sur des jeux, des serveurs à forte charge, des systèmes embarqués ou des applications financières.
- Étudiants et professionnels passant du code « d'apprentissage » aux solutions de production.
Qu'allez-vous apprendre ?
Après avoir lu ce livre, vous serez capable de :
- Trouver et éliminer les « goulots d'étranglement » dans le code C++.
- Écrire du code qui utilise efficacement le cache du processeur et la mémoire.
- Concevoir des systèmes multithreads sans courses de données ni interblocages.
- Appliquer les fonctionnalités modernes de C++17/20 pour accélérer les calculs.
- Mesurer les performances correctement et éviter les erreurs courantes de benchmarking.
Le livre contient de nombreux exemples, des extraits de code prêts à l'emploi et des listes de contrôle pour l'audit de code. C'est un guide de référence que vous consulterez à chaque refactorisation ou optimisation.
Attention : le livre suppose une connaissance solide de la syntaxe C++ et des concepts de base de la POO. Si vous commencez tout juste à apprendre le langage, nous vous recommandons d'abord de maîtriser les bases.
Recommendations
Clean Code en Go : principes, modèles et bonnes pratiques
Modèles de conception en C# (.NET)
Concurrence en Kotlin : Programmation asynchrone et multithread
Concurrence en Kotlin : Guide complet de la programmation asynchrone et multithread
SwiftUI Apprentice
Swift Playgrounds: Apprendre à programmer en Swift