forked from menault/2026_TD1_DEV51_Qualite_Algo
Organise le dépôt et numérote les profils par étape
This commit is contained in:
+25
-11
@@ -30,8 +30,10 @@ Le profil initial conduit aux priorités suivantes, classées par gain attendu :
|
||||
## 3. Optimisations et gains mesurés
|
||||
|
||||
Chaque gain est relatif à la version précédente. Les deux premières étapes
|
||||
reposent sur une mesure ponctuelle ; les suivantes utilisent la médiane de
|
||||
cinq exécutions par version.
|
||||
reposent sur une mesure ponctuelle ; les étapes 03 à 05 utilisent la médiane
|
||||
de cinq exécutions par version, les étapes 06 et 07 celle de dix exécutions,
|
||||
et la normalisation celle de cinquante exécutions. Chaque comparaison est
|
||||
faite sur la même machine ; les conditions peuvent varier entre les étapes.
|
||||
|
||||
| Optimisation | Modification | Avant | Après | Temps gagné |
|
||||
| --- | --- | ---: | ---: | ---: |
|
||||
@@ -40,29 +42,41 @@ cinq exécutions par version.
|
||||
| Table de hachage | Recherche et insertion en O(1) en moyenne | 0,888 s | 0,831 s | 6,4 % |
|
||||
| Longueurs et chaînes | Champ `taille`, arrêt sur `\0`, position de fin conservée | 0,832 s | 0,362 s | 56,5 % |
|
||||
| Tri par tas | Tri en O(n log n), sans tableau supplémentaire | 0,367 s | 0,113 s | 69,3 % |
|
||||
| Bigrammes | Deux lettres précédentes conservées, aucun appel à `est_lettre` | 0,1252 s | 0,1123 s | 10,3 % |
|
||||
| Mots vides | Filtre par longueur et index de hachage séparé | 0,1007 s | 0,0543 s | 46,1 % |
|
||||
| Normalisation | Table de conversion des octets, comparaison sur le même PC | 0,0569 s | 0,0508 s | 10,7 % |
|
||||
|
||||
La version finale utilise le hachage à la place de la dichotomie. Son gain
|
||||
Le programme utilise le hachage à la place de la dichotomie. Son gain
|
||||
supplémentaire reste limité car la recherche était déjà efficace.
|
||||
|
||||
Tous les appels à `longueur` sont supprimés. Le tri ne fait plus que
|
||||
**129 602 appels à `doit_echanger`**, soit environ **133 fois moins**.
|
||||
Le classement reste par fréquence décroissante, puis par ordre alphabétique.
|
||||
|
||||
La recherche des mots vides passe de **12 045 671 à 202 444 appels à
|
||||
`egales`**. Les appels à `est_lettre` et `en_minuscule` sont supprimés.
|
||||
Le gain de normalisation a été confirmé sur `salle235-06` : la nouvelle
|
||||
version est plus rapide dans les 50 paires de mesures, en temps réel et CPU.
|
||||
|
||||
## 4. Bilan et validation
|
||||
|
||||
Une comparaison directe des versions initiale et finale donne les médianes
|
||||
suivantes, sur cinq exécutions par version dans les mêmes conditions :
|
||||
Le bilan global ci-dessous a été mesuré après le tri par tas (étape 05),
|
||||
sur cinq exécutions par version dans les mêmes conditions. Les gains des
|
||||
étapes suivantes sont mesurés séparément dans le tableau précédent.
|
||||
|
||||
| Mesure | Version initiale | Version finale |
|
||||
| Mesure | Version initiale | Après le tri par tas |
|
||||
| --- | ---: | ---: |
|
||||
| Temps réel | 2,81 s | 0,11 s |
|
||||
| Pic mémoire résident (RSS) | 6 664 Kio | 6 668 Kio |
|
||||
|
||||
Le programme est environ **25,5 fois plus rapide**, soit **96,1 % de temps
|
||||
en moins** sur ce jeu de données.
|
||||
Après le tri par tas, le programme est environ **25,5 fois plus rapide**,
|
||||
soit **96,1 % de temps en moins** sur ce jeu de données.
|
||||
|
||||
Le rapport et la sortie console sont identiques octet par octet.
|
||||
L'empreinte reste **`1d53de903efd2b7c`**.
|
||||
L'empreinte reste **`1d53de903efd2b7c`**.
|
||||
|
||||
Sources : [notes](notes.md), [profil initial](out/profil_avant.txt),
|
||||
[profil final](out/profil_apres_tri.txt) et [mesures globales](out/mesures_bilan.csv).
|
||||
Sources : [notes](docs/notes.md), [ordre des profils](resultats/README.md),
|
||||
[profil initial](resultats/profils/00_initial.txt),
|
||||
[profil actuel](resultats/profils/08_normalisation.txt),
|
||||
[mesures du bilan après tri](resultats/mesures/mesures_bilan_tri.csv) et
|
||||
[comparaison de normalisation](resultats/mesures/comparaison_normalisation_meme_pc.csv).
|
||||
|
||||
Reference in New Issue
Block a user