forked from menault/2026_TD1_DEV51_Qualite_Algo
travaille
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user