Old stuff/Perl/svn/scrabble/trunk/tests/Benchmarks/CHECK_WORD
(Deskargatu)
Objectif des tests :
Trouver, pour le dictionnaire, quelle structure et quelle m�thode d'acc�s permettraient les meilleurs performances
selon nos crit�res. Nous utiliserons le module Benchmark::Timer et notre unique crit�re est pour le moment le temps d'ex�cution.
Id�es :
A] Premi�re s�rie de tests : choix de l'algo et de la structure
1)
- load_dictionnary() : mettre les mots dans un simple array
- check_word() : faire une recherche dichotomique
2)
- load_dictionnary() : mettre les mots dans un simple array et renseigner un hash qui fasse correspondre � chaque lettre de l'alphabet
l'indice du tableau du dictionnaire pour lequel elle apparait la premi�re fois en position de premi�re lettre.
- check_word() : faire une recherche dichotomique non plus sur le dictionnaire complet comme dans 1) mais sur la tranche
@words[$indexes{$printf("%.1s", $word)} .. $indexes{cle_suivante}] => voire du c�t� de Tie::IxHash pour pouvoir aller chercher la cl� correspondant
� la lettre cons�cutive. Peut-�tre qu'on peut faire des slices d'instances d'objet de Tie::IxHash => A VOIR
Sur la bonne tranche (slice), on proc�derait � une recherche dichotomique.
3)
- load_dictionnary() : mettre les mots dans un simple array et renseigner un hash qui fasse correspondre � chaque lettre de l'alphabet
tous les indices du tableau du dictionnaire pour lequel elle apparait en position de premi�re lettre.
- check_word() : faire une recherche dichotomique sur la tranche ci-dessous : @words[@{$indexes{printf("%.1s",$word)}}]
4)
- load_dictionnary() : mettre les mots dans un simple hash
- check_word() : faire une recherche au moyen de la fonction exists()
5)
- load_dictionnary() : mettre les premi�res lettres dans un hash, et faire des arrays de mots dans la valeur correspondante pour lesquels
la premii�re lettre correspond � la cl�.
- check_word() : recherche dichotomique sur @{ $ce_hash{$first_letter} } ...
B] Seconde s�rie de tests : choix de hacks sur la structure choisie � l'issu de la premi�re s�rie de tests ( genre modules perl existant )