Developpez.com - Rubrique C++

Le Club des Développeurs et IT Pro

Programme d'étude sur le C++ bas niveau n° 10 : Définition de type utilisateur

Le 2013-10-01 19:45:15, par germinolegrand, Membre expert
L'objectif de cette série d'articles d'Alex Darby sur la programmation « bas-niveau » est de permettre aux développeurs ayant déjà des connaissances de la programmation C++ de mieux comprendre comment ses programmes sont exécutés en pratique. Ce dixième article sort des limites des types fondamentaux et attaque l'organisation des structures définies par l'utilisateur.

Programme d'étude sur le C++ bas niveau n° 10 : Définition de type utilisateur

Connaissiez-vous les subtilités du remplissage (padding) et de l'adressage sur les structures de données ?
Connaissez-vous d'autres détails importants mais mal connus sur l'adressage et l'alignement ?


Retrouvez l'ensemble des articles de cette série sur la page d'index.
  Discussion forum
1 commentaire
  • koala01
    Expert éminent sénior
    Salut,
    Envoyé par germinolegrand

    Connaissiez-vous les subtilités du remplissage (padding) et de l'adressage sur les structures de données ?
    Oui, j'essaye d'y être attentif à chaque fois que je crée une structure.

    C'est un moyen comme un autre d'optimiser la mise en cache sans tomber dans l'optimisation prématurée:

    Le simple fait de déclarer les membres par ordre de taille (les plus grands en premier, les plus petits en dernier) permet de gagner énormément de place (jusqu'à 33% dans l'exemple de l'article ), et donc d'être en mesure d'avoir plus de données dans une ligne de cache, à peu de frais (il faut juste veiller à l'ordre dans lequel on initialise les membre), ce qui peut se traduire par un moindre besoin de charger une nouvelle ligne de cache
    Connaissez-vous d'autres détails importants mais mal connus sur l'adressage et l'alignement ?
    Honnêtement, non, mais je serai ravi de les apprendre