Filtrer les mots vides sur la première lettre avant de comparer

est_mot_vide appelait egales sur les 60 mots vides pour chacun des
250 000 mots : 12 millions d'appels. On ne fait la comparaison complète
que si la première lettre correspond (873 000 appels à egales au total).

Temps : 0,20 s → 0,15 s (médiane, bruit de mesure de l'ordre de 0,05 s).
Empreinte inchangée (1d53de903efd2b7c).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 14:01:55 +02:00
parent f6d43c1292
commit 872935c3a2
+2 -1
View File
@@ -229,7 +229,8 @@ typedef struct {
int est_mot_vide(const char *mot)
{
for (int i = 0; i < NB_MOTS_VIDES; i++) {
if (egales(mot, MOTS_VIDES[i]))
/* comparaison complète seulement si la première lettre correspond */
if (MOTS_VIDES[i][0] == mot[0] && egales(mot, MOTS_VIDES[i]))
return 1;
}
return 0;