Partage maximale

Partage maximale

Partage maximale

En informatique, le partage maximale, ou hash consing est une technique utilisée pour économiser de la mémoire, ou plus rarement du temps de calcul. Il s'agit, lorsqu'une structure de données est créé, de vérifier si une structure de donnée égale se trouve déjà en mémoire. Si c'est le cas, on réutilise cette même structure au lieu d'en créer une nouvelle.

Cela nécessite que la structure de donnée ne puisse pas être modifiée, en effet, si la structure est modifiable, alors la modification s'appliqueraient à toutes les instance de cette structure, et non pas simplement à l'instance qu'on voulait modifier.

Grâce à cette méthode, si deux structures sont égale, elles seront à la même position en mémoire, pour tester l'égalité, il suffira donc de comparer deux pointeurs. On peut aussi rajouter un tag unique pour chaque structure, le calcul du tag étant fait par le hash-consing. Si le terme est nouveau, c'est le plus grand des tags augmenté de un, sinon puisqu'on rend la structure existant en mémoire, le tag aura déjà la bonne valeur. Il suffira alors de comparer l'égalité sur les tags, or l'égalité sur des pointeurs ou des entiers est rapide. Enfin, la comparaison des tag permet de créer un ordre sur les structures, le plus petit tag appartenant à la première structure créée.

En pratique, pour utiliser le hash-consing, on crée une valeur, la hashe, on recherche une valeur égale dans une table de hashage, et on utilise cette valeur. Si on ne la trouve pas, alors on rajoute la valeur à la table de hashage. Il peut être bon d'utiliser une table de hashage à pointeur faible pour éviter de perdre de la mémoire avec des structures devenues inutiles.

Une autre manière de gagner du temps de calcul avec le hash-consing consiste à utiliser les structure pour mémoiser. Pour chaque fonction f pouvant utiliser la structure, on rajoute un champ mutable f à la structure s, au départ initialisé à une valeur dummy (ou nulle), la première fois qu'on veut f(s), on fait le calcul, et on stocke le résultat à la place de la valeur dummy. De cette manière chaque structures égales partagera le résultat, et on évite les cout de créer une table de hashage pour chaque fonction mémoisée.

Pour que cela fonctionne, il est indispensable que le teste d'égalité, et le hashage, ne tienne pas compte de la valeur stocké dans f.

Cette idée est similaire au design pattern poids mouche

Footnotes

Liens externes

  1. (en) Allen, John, Anatomy of Lisp, McGraw Hill, 1978 
  2. Ershov, A.P., « On programming of arithmetic operations », dans Communications of the ACM, vol. 1, no 8, 1958, p. 3–6 
  3. «  ».
  4. «  ».
  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Partage maximale ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Partage maximale de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Bief de partage du canal d'Orléans — Le bief de partage du canal d’Orléans est une section du canal d Orléans, constituant le point le plus haut du canal. De son extrémité est, l’écluse de Combreux, les embarcations peuvent rejoindre la Loire à Orléans par un parcours de 31,8 km… …   Wikipédia en Français

  • Hash consing — Partage maximale En informatique, le partage maximale, ou hash consing est une technique utilisée pour économiser de la mémoire, ou plus rarement du temps de calcul. Il s agit, lorsqu une structure de données est créé, de vérifier si une… …   Wikipédia en Français

  • Departements francais classes par altitude — Départements français classés par altitude Voici une liste des départements français classés par altitude. Sommaire 1 Sources 2 Altitude maximale 3 Altitude minimale 4 Voir aussi …   Wikipédia en Français

  • Departements francais classes par ville ou village le plus eleve — Départements français classés par altitude Voici une liste des départements français classés par altitude. Sommaire 1 Sources 2 Altitude maximale 3 Altitude minimale 4 Voir aussi …   Wikipédia en Français

  • Départements Français Classés Par Altitude — Voici une liste des départements français classés par altitude. Sommaire 1 Sources 2 Altitude maximale 3 Altitude minimale 4 Voir aussi …   Wikipédia en Français

  • Départements français classés par altitude — Voici une liste des départements français classés par altitude. Sommaire 1 Sources 2 Altitude maximale 3 Altitude minimale 4 Voir aussi …   Wikipédia en Français

  • Départements français classés par ville ou village le plus élevé — Départements français classés par altitude Voici une liste des départements français classés par altitude. Sommaire 1 Sources 2 Altitude maximale 3 Altitude minimale 4 Voir aussi …   Wikipédia en Français

  • SIDÉRURGIE — L’évolution de la sidérurgie dans les cent dernières années a été marquée par un accroissement considérable de la production d’acier brut: elle est passée, entre 1900 et 1993, de 35 à 725,3 millions de tonnes après un maximum de 785,1 millions de …   Encyclopédie Universelle

  • Roumanie — 45° N 25° E / 45, 25 …   Wikipédia en Français

  • Villabé — 48° 35′ 21″ N 2° 27′ 13″ E / 48.5890438, 2.4534944 …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”