dimensionnement de hachage

Le
Sébastien Cottalorda
Bonjour,

Je crée des hachages partagés en mémoire à l'aide du module
IPC::Shareable

Lors de leur création, je leurs donne des options de partage, ainsi
que leurs tailles.

Puis je les "tie" a un hachage exemple %HASH

Enfin je les rempli afin que les différents programmes puissent
accéder (lire/modifier/supprimer) des enregistrements.

Jusque là, tout va bien.

Seulement, le problème est que ces hachages grandissent et je ne sais
pas du tout la taille qu'il faut que je définisse au préalable, lors
du Tie, afin de ne pas avoir de message du genre "size excedeed".

J'ai fureté sur google pour voir cette histoire de dimentionnement de
hachage, mais cela ne semble pas être fait pour les hachages crées
gràce à Tie.
Car lorsque j'utilise le module Devel::Size il me sort que mon hachage
fait la totalité de la taille que je lui ai affecté au départ : ce ne
m'est pas franchement utile comme info :-)

Je voudrai pouvoir dimmensionner correctement mes hachages en fonction
du nombre d'enregistrements qu'ils peuvent contenir car la taille de
chacun de leur enregistrement est fixe.

Merci de votre aide.

Sébastien Cottalorda
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #152010
À (at) Mon, 08 Oct 2007 12:37:31 -0000,
Sébastien Cottalorda
Je crée des hachages partagés en mémoire à l'aide du module
IPC::Shareable

Lors de leur création, je leurs donne des options de partage, ainsi
que leurs tailles.

Puis je les "tie" a un hachage exemple %HASH

Enfin je les rempli afin que les différents programmes puissent
accéder (lire/modifier/supprimer) des enregistrements.

Jusque là, tout va bien.

Seulement, le problème est que ces hachages grandissent et je ne sais
pas du tout la taille qu'il faut que je définisse au préalable, lors
du Tie, afin de ne pas avoir de message du genre "size excedeed".

J'ai fureté sur google pour voir cette histoire de dimentionnement de
hachage, mais cela ne semble pas être fait pour les hachages crées
gràce à Tie.
Car lorsque j'utilise le module Devel::Size il me sort que mon hachage
fait la totalité de la taille que je lui ai affecté au départ : ce ne
m'est pas franchement utile comme info :-)


C'est déjà bien que Devel::Size donne un résultat cohérent ! ;-)

Comme la mesure de la taille ne doit être fait que ponctuellement, il
est possible de recopier la table de hachage attachée (via tie) vers
une table de hachage normale. La fonction total_size de Devel::Size
appliquée à cette table de hachage normale devrait donner une valeur
plus réaliste.

--
Paul Gaborit - Perl en français -
Sébastien Cottalorda
Le #151913
C'est déjà bien que Devel::Size donne un résultat cohérent ! ;-)



En effet.

Comme la mesure de la taille ne doit être fait que ponctuellement, il
est possible de recopier la table de hachage attachée (via tie) vers
une table de hachage normale. La fonction total_size de Devel::Size
appliquée à cette table de hachage normale devrait donner une valeur
plus réaliste.


Bien vu, j'avais pas pensé à recopier le hachage et de mesurer la
copie.

Je m'en vais de ce pas, faire les modifs.

Merci Paul, une fois de plus .... :-)

Publicité
Poster une réponse
Anonyme