forked from menault/2026_TD1_DEV51_Qualite_Algo
128 lines
3.2 KiB
Markdown
128 lines
3.2 KiB
Markdown
|
|
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é.
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|