En ce qui concerne le niveau d'instruction machine, le concept des objets disponibles dans les langages de niveau supérieur disparaît. L'accès à leurs membres via des opérations d'affectation de niveau supérieur sera traduit en instructions de lecture et d'écriture régulières. Donc, si le système d'exécution, ou la machine virtuelle du langage est intelligent et capable d'allouer des objets pour obtenir une meilleure utilisation du cache, dans votre cas, dans des adresses alignées 64 octets, lorsque le langage de niveau supérieur lit tout membre de l'objet, être n'importe où dans l'adresse alignée 64 octets, l'objet entier sera chargé à la cacheline (parce que son alloué à l'adresse 64 octets alignés). Si le système d'exécution est bête, s'il alloue juste des objets comme demandé dans le flux du programme, sans regarder dans les situations (64 objets octets et 64 octets de cache) comme mentionné dans votre question, puis quand une lecture arrive à un membre de l'objet, les données à l'adresse alignée 64 octets de ce membre seront chargés dans le cache. Par conséquent, dans ce dernier cas, vous devez être chanceux ou écrire du code de sorte qu'un padding spécial soit en place, à l'avant ou à l'arrière de l'objet pour aligner la ligne de cache.