Infos & performances des hash tables

Nymouas Messages postés 34 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 20 mai 2005 - 9 sept. 2004 à 11:56
Nymouas Messages postés 34 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 20 mai 2005 - 10 sept. 2004 à 00:11
Bonjour,

J'ai découvert récemment les hash table et j'aimerai savoir comment c gérer par mirc. Par exemple, est-ce plus performant que des variables "normales" ? Si on veut conserver une htable, il faut la sauver manuellement - donc en cas de fermeture brutale, elle n'est pas sauvegardée automatiquement contrairement aux variables (globales)

Personnellement, lorsque g besoin d'un vecteur, je n'utilise pas de hash table. Je gère moi-même des varialbles (globales) qui par exemple pour une liste sont de la forme %nomlist.index (un index donnant le nombre d'élément) et ensuite %nomlist.x (où x est un chiffre de 1 à x) que j'attribue une valeur. Parfois j'utilise également %nomlist.x.champ etc (pour faire comme des objets). Est-ce qu'une hash table est plus performante (rapidité d'accès, d'écriture, etc) que ce système ???

Merci de vos réponses,
@++

PS : je trouve que cette dénomination de hash table n'est pas approprié car pour moi un hash c une valeur extraite d'un grand nombre de valeur (cf. les hash md5, etc) D'où je ne m'y avais pas fait du tout attention qd j'ai commencé à programmer en script.

Un p'tit bout de code pour une gestion de vecteur d'élément
;add $2 to a list $1 (& create)
alias listadd {
if ($0 < 2) halt
if (% [ $+ [ $1 ] $+ .index ] == $null) set % [ $+ [ $1 ] $+ .index ] 0
inc % [ $+ [ $1 ] $+ .index ]
set % [ $+ [ $1 ] $+ . $+ [ % [ $+ [ $1 ] $+ .index ] ] ] $2-
}

3 réponses

cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
9 sept. 2004 à 21:54
Une hashtable est toujours plus rapide : elle permet en gros 5-6000 appels par seconde ce qui n'est pas le cas de vars globales (qui sont des bêtes lectures écritures dans un .ini)
faire de l'objet avec mirc ? woaou même si j'y connais rien je flaire la difficulté...
la dénomination je sais pas d'ou elle provient mais en Perl (un vrai langage) les hashages c la même chose , une table dans laquelle chaque item est référencée sous un nom ... donc bon ca légitime ptet un peu ...
sinon ton code je vois pas exactement ce que t'en fait , mais avec des tokens on peut souvent gérer des listes sans faire de tests d'existence déja de l'item etc

PaDa
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
9 sept. 2004 à 22:10
Rajout : pour des utilisations limitées a un alias , les vars locales (/var %bla = gna) sont aussi rapides que les hashtables grosso modo.
pour l'enregistrement autant mettre un /hsave quand des items importants sont changés , mais de toute facon la non sauvegarde c'est les fermeture violentes violentes (quand mirc freeze/plante) , dans les autres cas le "on exit" fonctionne toujours
PaDa
0
Nymouas Messages postés 34 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 20 mai 2005
10 sept. 2004 à 00:11
Encore merci pour toutes ces infos PaDa ;)

Effectivement, ça devrait être plus rapide, j'adapterai mon code actuel probablement de cette manière dans des versions ultérieurs (très ultérieures car tout mon script actuel est basé sur la structure précédente mais pour l'instant, je ne sent pas de ralentissement avec une utilisation normale de mon script).

Juste une rectification, j'aurai plutôt dû dire structure à la place d'objet (bcp plus proche de ce que j'utilise des vecteurs de struct).

Bonne nuit
0
Rejoignez-nous