2012-10-13 4 views

Répondre

2

L'idée derrière le modèle de poids mouche est que vous avez un petit objet qui des points-partagé données.

En d'autres termes, plusieurs instances de l'objet partagent les données.

S'il n'y a qu'un seul objet pour chaque donnée, il n'utilisera en effet pas moins de mémoire, mais plutôt plus, puisque vous avez maintenant les données et un pointeur pointant vers ces données.

1

Alignement et état masqué. Les objets dans la plupart des langues OO doivent être alignés à une limite d'au moins 8 octets. Un processeur 32 bits ne peut accéder efficacement aux données qu'à une limite de 4 octets. L'espace supplémentaire est utilisé pour stocker un pointeur de classe cachée (4 octets) pour chaque objet en plus des données propres à l'objet. Deux objets représentant un bit prennent alors au moins 16 octets. Sur les processeurs 64 bits, l'alignement est souvent de 16 octets.

Dans certains langages OO, les objets de valeur sont utilisés pour gérer des cas courants tels que les petits entiers. Les implémentations de Smalltalk ont ​​des petits entiers de 31 bits et utilisent le bit supplémentaire pour indiquer que c'est le cas.

1

Je cite http://www.oodesign.com/flyweight-pattern.html

Le but de ce modèle est d'utiliser le partage pour soutenir un grand nombre d'objets qui ont une partie de leur état interne en commun où le autre partie de l'Etat peut varier.

Wiki article Flyweight

Flyweight est un modèle de conception de logiciels. Un poids mouche est un objet qui minimise l'utilisation de la mémoire en partageant autant de données que possible avec d'autres objets similaires; c'est une façon d'utiliser des objets en grand nombre lorsqu'une représentation répétée simple utiliserait une quantité inacceptable de mémoire .

Questions connexes