Cours C++
  • Bienvenue
  • Sommaire
  • Introduction - Pourquoi le C++
  • Langage
    • La compilation
    • Les catégories de classes
    • Les Undefined Behaviors
    • Les bibliothèques
  • Abstractions
    • L'orienté objet
    • Les templates (1/2)
    • Les move & smart pointers
    • Les exceptions
    • Les lambdas & opérateurs
    • Le multithreading
    • Les templates (2/2)
  • Performances
    • Introduction
    • Les accès mémoire
    • Les options du compilateur
    • Les indices au compilateur
    • La vectorisation
    • Le temps de compilation
Powered by GitBook
On this page

Performances

PreviousLes templates (2/2)NextIntroduction

Last updated 6 years ago

va expliquer :

  • Les cache lines

  • La pile et le tas

  • Les allocateurs

  • L'alignement en mémoire

va couvrir :

  • Les options générales

  • La Link-Time Optimization

  • L'optimisation ciblant une architecture

  • La Profile-Guided Optimization

va aborder :

  • Les attributs standards

  • Les prédictions de branches

  • __builtin_expect(value, expected)

  • Le strict aliasing

  • Le mot-clé restrict

  • Des attributs non-standards

  • D'autres instructions (unreachable, assume)

  • Des instructions SIMD

  • Des optimisations possibles pour la vectorisation

Le temps de compilation va présenter :

  • Les principaux facteurs de ralentissement

  • Les forward declarations

  • Le pattern Pointer to Implementation (pimpl)

  • Quelques solutions de compilateurs et systèmes de build

va se baser sur pour parler :

Les accès mémoire
Les options du compilateur
Les indices au compilateur
La vectorisation
un exemple