C++ High Performance. Calculs haute performance en C++
538 pages
French
PDF
4.5

C++ High Performance. Calculs haute performance en C++

C++ High Performance. Calculs haute performance en C++

Auteur :

Année :

Résumé :

Introduction

Le livre C++ High Performance (auteurs : Björn Andrist, Viktor Sehr, 2020, 538 pages) n'est pas un énième manuel sur la syntaxe du langage, mais une plongée profonde dans l'art d'écrire du code C++ rapide et efficace. Dans un monde où la performance est souvent une exigence critique (jeux, serveurs à forte charge, systèmes financiers, systèmes embarqués), la capacité non seulement à écrire du code fonctionnel, mais à le rendre aussi rapide que possible, devient une compétence clé. Ce livre propose une approche systématique de l'optimisation, allant de l'architecture de l'application aux astuces bas niveau avec le processeur.

De quoi parle ce livre ?

Le livre est divisé en trois parties logiques qui guident progressivement le lecteur des principes généraux aux techniques spécifiques.

Partie 1 : Fondamentaux de la performance

Les auteurs commencent par les concepts fondamentaux : qu'est-ce que la performance, comment la mesurer, quels sont les goulots d'étranglement courants. Sont abordés :

  • Profilage et benchmarking (outils : perf, Valgrind, Google Benchmark).
  • Influence de l'architecture du processeur (pipeline, cache, prédiction de branchement).
  • Optimisation de la mémoire (localité des données, alignement, pools).

Partie 2 : Techniques avancées en C++

La deuxième partie est consacrée à l'utilisation des fonctionnalités modernes du C++ pour améliorer les performances :

  • Sémantique de déplacement et transfert parfait (perfect forwarding).
  • Calculs à la compilation (constexpr, templates).
  • Polymorphisme sans fonctions virtuelles (CRTP, std::variant, std::any).
  • Pointeurs intelligents et gestion des ressources.

Partie 3 : Multithreading et parallélisme

La dernière partie est la plus volumineuse et la plus pratique. Elle couvre :

  • Modèles mémoire C++ et opérations atomiques.
  • Threads, mutex, conditional_variable.
  • Algorithmes parallèles (std::execution::par).
  • Instructions SIMD (SSE, AVX) et leur utilisation via les intrinsèques.
  • Programmation asynchrone (std::future, std::async).

À qui s'adresse ce livre ?

Ce livre est destiné aux développeurs C++ expérimentés qui maîtrisent déjà le langage mais souhaitent élever leurs compétences à un niveau supérieur. Il sera utile :

  • Aux développeurs de jeux et de moteurs graphiques.
  • Aux ingénieurs travaillant sur des serveurs à forte charge.
  • Aux spécialistes des systèmes embarqués.
  • À tous ceux qui veulent comprendre comment fonctionne le C++ moderne « sous le capot ».

Que va apprendre le lecteur ?

Après avoir lu ce livre, vous serez capable de :

  • Choisir correctement les outils de profilage et interpréter leurs résultats.
  • Optimiser l'utilisation du cache et de la mémoire.
  • Utiliser la sémantique de déplacement et constexpr pour accélérer le code.
  • Construire des applications multithread efficaces sans courses de données ni deadlocks.
  • Appliquer les instructions SIMD pour les calculs vectoriels.
  • Concevoir une architecture orientée performance dès le départ.

Points forts du livre

Le principal atout est l'orientation pratique. Chaque technique est accompagnée d'exemples de code réels et de benchmarks montrant les gains de performance. Les auteurs ne se contentent pas de dire « faites ceci », ils expliquent pourquoi cela fonctionne, en s'appuyant sur l'architecture des processeurs modernes. Le livre est écrit dans un langage vivant, et les concepts complexes (comme le modèle mémoire C++ ou le SIMD) sont expliqués de manière très claire.

Il faut également souligner la qualité des exemples : ils ne sont pas sortis de leur contexte, mais représentent des mini-projets complets que l'on peut immédiatement appliquer dans son travail.

À qui est-il recommandé ?

Je recommande sans hésitation ce livre à tous ceux qui écrivent en C++ et souhaitent que leur code fonctionne le plus rapidement possible. Si vous connaissez déjà la syntaxe mais sentez que vous atteignez un plafond de performance, C++ High Performance sera votre tremplin. Il n'est pas destiné aux débutants, mais à ceux qui sont prêts à approfondir le sujet.

Recommendations