IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par germinolegrand

0PARTAGES

3  0 
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.
Vous avez lu gratuitement 19 729 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de koala01
Expert éminent sénior https://www.developpez.com
Le 01/10/2013 à 23:14
Salut,
Citation Envoyé par germinolegrand Voir le message

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
0  0