Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

dimensionnement de hachage

2 réponses
Avatar
Sébastien Cottalorda
Bonjour,

Je cr=E9e des hachages partag=E9s en m=E9moire =E0 l'aide du module
IPC::Shareable

Lors de leur cr=E9ation, 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=E9rents programmes puissent
acc=E9der (lire/modifier/supprimer) des enregistrements.

Jusque l=E0, tout va bien.

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

J'ai furet=E9 sur google pour voir cette histoire de dimentionnement de
hachage, mais cela ne semble pas =EAtre fait pour les hachages cr=E9es
gr=E0ce =E0 Tie.
Car lorsque j'utilise le module Devel::Size il me sort que mon hachage
fait la totalit=E9 de la taille que je lui ai affect=E9 au d=E9part : 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=E9bastien Cottalorda

2 réponses

Avatar
Paul Gaborit
À (at) Mon, 08 Oct 2007 12:37:31 -0000,
Sébastien Cottalorda écrivait (wrote):
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 - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Sébastien Cottalorda
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 .... :-)