travaille

This commit is contained in:
abraham
2026-10-07 12:14:44 +02:00
parent b2a9d097aa
commit bf1396cbb7
+10 -14
View File
@@ -86,7 +86,7 @@ On voit que longeur est appelé majoritairement par longeur_moyenne ou l'on peut
4. Proposer
On peut réduire l'utilisation de longeur a un seul appel. On peut aussi réduire le temps utiliser par chercher_mot en le modifiants.
On peut réduire l'utilisation de longeur a des appel réduit. On peut aussi réduire le temps utiliser par chercher_mot en le modifiants.
La fonction longeur risque d'avoir le changement le plus drastique (passage de plusieurs million d'appel a un seul). La fonction chercher_mot peut être amélioré (nous ne savons pas encore la porté du résultat de l'amélioration).
@@ -97,29 +97,25 @@ La fonction longeur risque d'avoir le changement le plus drastique (passage de p
5. Optimiser
Nous avons optimisé le code sur deux points principaux :
Nous avons optimisé le code avec l'aide de copilot avec chatGPT-6 Luna, en lui précisant que nous cherchions a amélioré les parties de longueur et chercher_mot. L'historique du chat avec l'IA est disponible dans le fichier "prompt_IA.txt".
- réduction des appels répétés à la fonction `longueur` : la moyenne est calculée une seule fois puis réutilisée dans le calcul de l'écart-type ;
- remplacement de la recherche linéaire dans `chercher_mot` par un index de hachage, ce qui permet de retrouver rapidement un mot déjà présent dans la table sans parcourir toutes les entrées.
La logique métier du programme n'a pas été modifiée : le traitement des mots, le tri, la génération du rapport et l'empreinte finale restent cohérents avec la version initiale. Les modifications visent uniquement à réduire le coût de calcul et améliorer le temps d'exécution.
Les changements ont été appliqués dans le fichier `analyseur.c`, notamment dans les fonctions `longueur_moyenne`, `ecart_type_longueur`, `chercher_mot`, `compter_mot` et `compter_mots_ligne`.
6. Valider
Avant optimisation, le programme prenait environ 9 secondes à s'exécuter, avec une empreinte du rapport de `1d53de903efd2b7c`.
Après optimisation, le temps d'exécution a été réduit à environ 2,171 secondes, tout en conservant la même empreinte de rapport : `1d53de903efd2b7c`.
Avant d'avoir fait les modifications nous avions obtenu un temps de 9 seconde (environ) avec l'emprunte du rapport : 1d53de903efd2b7c
Cette amélioration représente une réduction de plus de 7 secondes, ce qui confirme que les changements ont bien permis d'optimiser le code sans modifier le résultat final.
Après modification du script nous avons obtenu un temps de 2.171 secondes avec l'emprunte de rapport : 1d53de903efd2b7c
Nous obtenons une différence de plus de 7 secondes avec ses amélioration.
Profile-1 contient la version du code sans changement, le profile-2 contient la version après changement pour la fonction longueur (8.450 secondes). Le profile-3 contient la version final des modification apporté.
Les fichiers `profil-1.txt`, `profil-2.txt` et `profil-3.txt` correspondent respectivement à la version initiale, à la version après optimisation de la fonction `longueur`, puis à la version finale avec les améliorations complètes.