Files
2026_TD1_DEV51_Qualite_Algo/README.md
T

128 lines
3.2 KiB
Markdown
Raw Normal View History

2026-10-07 12:09:12 +02:00
Groupe :
- FRAMERY Karl
- ABRAHAM Ozvann
1. Mesurer
[ozvann@archlinux 2026_TD1_DEV51_Qualite_Algo]$ time ./a.out
Lignes analysées : 21746
Mots au total : 250000
Mots distincts : 5866
Longueur moyenne : 6.712 (écart-type 1.873)
Bigramme le + courant : "me" (17607 fois, souvent suivi de 'n')
Top 10 :
1. rane 287
2. fasi 241
3. tata 219
4. mopo 214
5. cofi 180
6. vesi 179
7. laganomo 177
8. boto 172
9. nopebo 169
10. rotion 165
Empreinte du rapport : 1d53de903efd2b7c
real 0m5,077s
user 0m5,058s
sys 0m0,004s
Le programme a pris 5.077 seconde a s'exécuter.
2. Profiler
[ozvann@archlinux 2026_TD1_DEV51_Qualite_Algo]$ time ./analyseur
Lignes analysées : 21746
Mots au total : 250000
Mots distincts : 5866
Longueur moyenne : 6.712 (écart-type 1.873)
Bigramme le + courant : "me" (17607 fois, souvent suivi de 'n')
Top 10 :
1. rane 287
2. fasi 241
3. tata 219
4. mopo 214
5. cofi 180
6. vesi 179
7. laganomo 177
8. boto 172
9. nopebo 169
10. rotion 165
Empreinte du rapport : 1d53de903efd2b7c
real 0m9,359s
user 0m9,326s
sys 0m0,004s
Le programme passe 9.359 seconde sur le programme au totale, c'est plus de 4 secondes de plus que l'étape 1.
3. Analyser
Pour le profil plat :
La fonction "egales" prend le plus de calls (308701874), pour un temps de 34.51%. La fonction "longueur" prend 36009819 calls, pour un temps de 29.20%. La fonction "chercher_mot" prend 150182, pour un temps de 13.27%.
Pour le graph d'appel :
On voit que longeur est appelé majoritairement par longeur_moyenne ou l'on peut juste se limiter a un seul appel de longeur. Pour chercher_mot est aussi un moyen d'amélioration. La fonction égale ne permet pas d'être amélioré car il n'a que le nécéssaire.
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.
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).
5. Optimiser
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".
6. Valider
Avant d'avoir fait les modifications nous avions obtenu un temps de 9 seconde (environ) avec l'emprunte du rapport : 1d53de903efd2b7c
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é.