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.

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