3 Commits

Author SHA1 Message Date
Mathis Leclere 3b2f113b42 Rendu 2026-10-07 12:59:32 +02:00
Mathis Leclere a6ef36de94 optimisation sur longueur 2026-10-07 12:57:07 +02:00
Mathis Leclere 8ff682cab5 vérification de la première lettre sur chercher_mot 2026-10-07 12:05:48 +02:00
6 changed files with 548 additions and 2 deletions
+4
View File
@@ -0,0 +1,4 @@
gprof2dot-2025.04.14
gmon.out
rapport.txt
analyseur
+48
View File
@@ -0,0 +1,48 @@
# Compte rendu — TD Profiling
## Temps
| | Temps | Empreinte |
|---|---|---|
| Avant | 2,905 s | `1d53de903efd2b7c` |
| Après optimisation 1 | 2,048 s | `1d53de903efd2b7c` |
| Après optimisation 2 | 1.976 s | `1d53de903efd2b7c` |
## Analyse du profil
- `chercher_mot` prend **54 %** du temps. Elle fait une recherche linéaire et appelle `egales` 296 millions de fois.
- `ecart_type_longueur` prend **29 %** du temps. Elle recalcule la moyenne à chaque tour de boucle.
## Pistes (par gain attendu)
1. `chercher_mot` : vérifier la première lettre avant d'appeler `egales`.
2. `ecart_type_longueur` : calculer la moyenne une seule fois.
## Optimisation 1 : `chercher_mot`
```c
if (table[i].mot[0] == mot[0] && egales(table[i].mot, mot))
```
On compare d'abord la première lettre. Si elle diffère, `&&` n'appelle pas `egales`.
- Appels à `egales` depuis `chercher_mot` : 296 M → 23 M (÷ 13)
- Temps total du profil : 2,22 s → 1,87 s (−16 %)
La boucle parcourt toujours toute la table : la complexité ne change pas, seul le nombre d'appels baisse.
## Optimisation 2 : `ecart_type_longueur`
```c
double moyenne = longueur_moyenne(table, n); // avant la boucle
for (int i = 0; i < n; i++) {
double ecart = longueur(table[i].mot) - moyenne;
```
- Appels à `longueur_moyenne` : 5 867 → 2
- Appels à `longueur` : 36 M → 1,6 M
- Temps total du profil : 1,87 s → 1,50 s (−20 %)
## Bilan
Temps total du profil : **2,22 s → 1,50 s (−32 %)**.
+4 -2
View File
@@ -238,7 +238,7 @@ int est_mot_vide(const char *mot)
int chercher_mot(Entree *table, int nb_entrees, const char *mot)
{
for (int i = 0; i < nb_entrees; i++) {
if (egales(table[i].mot, mot))
if (table[i].mot[0] == mot[0] && egales(table[i].mot, mot))
return i;
}
return -1;
@@ -316,11 +316,13 @@ double longueur_moyenne(const Entree *table, int n)
return (double)total / n;
}
double ecart_type_longueur(const Entree *table, int n)
{
double somme = 0.0;
double moyenne = longueur_moyenne(table, n);
for (int i = 0; i < n; i++) {
double ecart = longueur(table[i].mot) - longueur_moyenne(table, n);
double ecart = longueur(table[i].mot) - moyenne;
somme += ecart * ecart;
}
return somme / n; /* variance ; la racine est prise dans main */
+164
View File
@@ -0,0 +1,164 @@
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
34.76 0.65 0.65 150182 0.00 0.01 chercher_mot
24.06 1.10 0.45 36009819 0.00 0.00 longueur
14.44 1.37 0.27 35261718 0.00 0.00 egales
6.95 1.50 0.13 17202045 0.00 0.00 doit_echanger
5.35 1.60 0.10 12172087 0.00 0.00 comparer
4.28 1.68 0.08 5867 0.01 0.09 longueur_moyenne
4.28 1.76 0.08 1 80.00 310.00 trier_entrees
1.60 1.79 0.03 21746 0.00 0.00 normaliser_ligne
1.07 1.81 0.02 250000 0.00 0.00 est_mot_vide
1.07 1.83 0.02 1 20.00 20.00 analyser_bigrammes
1.07 1.85 0.02 1 20.00 20.00 generer_texte
0.53 1.86 0.01 32667 0.00 0.00 copier
0.53 1.87 0.01 21746 0.00 0.04 compter_mots_ligne
0.00 1.87 0.00 5297256 0.00 0.00 est_lettre
0.00 1.87 0.00 1266663 0.00 0.00 en_minuscule
0.00 1.87 0.00 928117 0.00 0.00 alea
0.00 1.87 0.00 150182 0.00 0.01 compter_mot
0.00 1.87 0.00 26801 0.00 0.00 ajouter
0.00 1.87 0.00 1 0.00 1.87 construire_rapport
0.00 1.87 0.00 1 0.00 0.00 decouper_lignes
0.00 1.87 0.00 1 0.00 510.07 ecart_type_longueur
0.00 1.87 0.00 1 0.00 0.00 empreinte
0.00 1.87 0.00 1 0.00 6.67 generer_vocabulaire
0.00 1.87 0.00 1 0.00 0.00 racine
Call graph
granularity: each sample hit covers 4 byte(s) for 0.53% of 1.87 seconds
index % time self children called name
<spontaneous>
[1] 100.0 0.00 1.87 main [1]
0.01 0.94 21746/21746 compter_mots_ligne [2]
0.00 0.51 1/1 ecart_type_longueur [6]
0.08 0.23 1/1 trier_entrees [8]
0.03 0.02 21746/21746 normaliser_ligne [13]
0.02 0.00 1/1 generer_texte [15]
0.02 0.00 1/1 analyser_bigrammes [14]
0.00 0.01 1/1 generer_vocabulaire [18]
0.00 0.00 1/1 construire_rapport [19]
0.00 0.00 1/5867 longueur_moyenne [5]
0.00 0.00 1/1 decouper_lignes [23]
0.00 0.00 1/1 racine [25]
0.00 0.00 1/1 empreinte [24]
-----------------------------------------------
0.01 0.94 21746/21746 main [1]
[2] 50.9 0.01 0.94 21746 compter_mots_ligne [2]
0.00 0.83 150182/150182 compter_mot [3]
0.02 0.09 250000/250000 est_mot_vide [11]
-----------------------------------------------
0.00 0.83 150182/150182 compter_mots_ligne [2]
[3] 44.4 0.00 0.83 150182 compter_mot [3]
0.65 0.18 150182/150182 chercher_mot [4]
0.00 0.00 5866/32667 copier [16]
-----------------------------------------------
0.65 0.18 150182/150182 compter_mot [3]
[4] 44.3 0.65 0.18 150182 chercher_mot [4]
0.18 0.00 23216047/35261718 egales [9]
-----------------------------------------------
0.00 0.00 1/5867 main [1]
0.08 0.43 5866/5867 ecart_type_longueur [6]
[5] 27.3 0.08 0.43 5867 longueur_moyenne [5]
0.43 0.00 34415822/36009819 longueur [7]
-----------------------------------------------
0.00 0.51 1/1 main [1]
[6] 27.3 0.00 0.51 1 ecart_type_longueur [6]
0.08 0.43 5866/5867 longueur_moyenne [5]
0.00 0.00 5866/36009819 longueur [7]
-----------------------------------------------
0.00 0.00 5866/36009819 ecart_type_longueur [6]
0.00 0.00 26801/36009819 ajouter [17]
0.02 0.00 1561330/36009819 normaliser_ligne [13]
0.43 0.00 34415822/36009819 longueur_moyenne [5]
[7] 24.1 0.45 0.00 36009819 longueur [7]
-----------------------------------------------
0.08 0.23 1/1 main [1]
[8] 16.6 0.08 0.23 1 trier_entrees [8]
0.13 0.10 17202045/17202045 doit_echanger [10]
-----------------------------------------------
0.09 0.00 12045671/35261718 est_mot_vide [11]
0.18 0.00 23216047/35261718 chercher_mot [4]
[9] 14.4 0.27 0.00 35261718 egales [9]
-----------------------------------------------
0.13 0.10 17202045/17202045 trier_entrees [8]
[10] 12.3 0.13 0.10 17202045 doit_echanger [10]
0.10 0.00 12172087/12172087 comparer [12]
-----------------------------------------------
0.02 0.09 250000/250000 compter_mots_ligne [2]
[11] 6.0 0.02 0.09 250000 est_mot_vide [11]
0.09 0.00 12045671/35261718 egales [9]
-----------------------------------------------
0.10 0.00 12172087/12172087 doit_echanger [10]
[12] 5.3 0.10 0.00 12172087 comparer [12]
-----------------------------------------------
0.03 0.02 21746/21746 main [1]
[13] 2.6 0.03 0.02 21746 normaliser_ligne [13]
0.02 0.00 1561330/36009819 longueur [7]
0.00 0.00 1539584/5297256 est_lettre [20]
0.00 0.00 1266663/1266663 en_minuscule [21]
-----------------------------------------------
0.02 0.00 1/1 main [1]
[14] 1.1 0.02 0.00 1 analyser_bigrammes [14]
0.00 0.00 3757672/5297256 est_lettre [20]
-----------------------------------------------
0.02 0.00 1/1 main [1]
[15] 1.1 0.02 0.00 1 generer_texte [15]
0.00 0.00 900183/928117 alea [22]
-----------------------------------------------
0.00 0.00 5866/32667 compter_mot [3]
0.01 0.00 26801/32667 ajouter [17]
[16] 0.5 0.01 0.00 32667 copier [16]
-----------------------------------------------
0.00 0.00 5867/26801 construire_rapport [19]
0.00 0.01 20934/26801 generer_vocabulaire [18]
[17] 0.5 0.00 0.01 26801 ajouter [17]
0.01 0.00 26801/32667 copier [16]
0.00 0.00 26801/36009819 longueur [7]
-----------------------------------------------
0.00 0.01 1/1 main [1]
[18] 0.4 0.00 0.01 1 generer_vocabulaire [18]
0.00 0.01 20934/26801 ajouter [17]
0.00 0.00 27934/928117 alea [22]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[19] 0.1 0.00 0.00 1 construire_rapport [19]
0.00 0.00 5867/26801 ajouter [17]
-----------------------------------------------
0.00 0.00 1539584/5297256 normaliser_ligne [13]
0.00 0.00 3757672/5297256 analyser_bigrammes [14]
[20] 0.0 0.00 0.00 5297256 est_lettre [20]
-----------------------------------------------
0.00 0.00 1266663/1266663 normaliser_ligne [13]
[21] 0.0 0.00 0.00 1266663 en_minuscule [21]
-----------------------------------------------
0.00 0.00 27934/928117 generer_vocabulaire [18]
0.00 0.00 900183/928117 generer_texte [15]
[22] 0.0 0.00 0.00 928117 alea [22]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[23] 0.0 0.00 0.00 1 decouper_lignes [23]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[24] 0.0 0.00 0.00 1 empreinte [24]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[25] 0.0 0.00 0.00 1 racine [25]
-----------------------------------------------
Index by function name
[17] ajouter [16] copier [11] est_mot_vide
[22] alea [23] decouper_lignes [15] generer_texte
[14] analyser_bigrammes [10] doit_echanger [18] generer_vocabulaire
[4] chercher_mot [6] ecart_type_longueur [7] longueur
[12] comparer [9] egales [5] longueur_moyenne
[3] compter_mot [24] empreinte [13] normaliser_ligne
[2] compter_mots_ligne [21] en_minuscule [25] racine
[19] construire_rapport [20] est_lettre [8] trier_entrees
+164
View File
@@ -0,0 +1,164 @@
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
40.67 0.61 0.61 150182 0.00 0.01 chercher_mot
18.67 0.89 0.28 1605729 0.00 0.00 longueur
16.67 1.14 0.25 35261718 0.00 0.00 egales
7.67 1.25 0.12 12172087 0.00 0.00 comparer
6.00 1.34 0.09 17202045 0.00 0.00 doit_echanger
5.33 1.43 0.08 1 80.00 285.00 trier_entrees
1.33 1.45 0.02 1 20.00 27.09 analyser_bigrammes
0.67 1.46 0.01 5297256 0.00 0.00 est_lettre
0.67 1.47 0.01 1266663 0.00 0.00 en_minuscule
0.67 1.48 0.01 250000 0.00 0.00 est_mot_vide
0.67 1.49 0.01 1 10.00 10.00 decouper_lignes
0.67 1.50 0.01 1 10.00 10.00 generer_texte
0.33 1.50 0.01 32667 0.00 0.00 copier
0.00 1.50 0.00 928117 0.00 0.00 alea
0.00 1.50 0.00 150182 0.00 0.01 compter_mot
0.00 1.50 0.00 26801 0.00 0.00 ajouter
0.00 1.50 0.00 21746 0.00 0.04 compter_mots_ligne
0.00 1.50 0.00 21746 0.00 0.01 normaliser_ligne
0.00 1.50 0.00 2 0.00 1.02 longueur_moyenne
0.00 1.50 0.00 1 0.00 1.92 construire_rapport
0.00 1.50 0.00 1 0.00 2.05 ecart_type_longueur
0.00 1.50 0.00 1 0.00 0.00 empreinte
0.00 1.50 0.00 1 0.00 6.85 generer_vocabulaire
0.00 1.50 0.00 1 0.00 0.00 racine
Call graph
granularity: each sample hit covers 4 byte(s) for 0.67% of 1.50 seconds
index % time self children called name
<spontaneous>
[1] 100.0 0.00 1.50 main [1]
0.00 0.87 21746/21746 compter_mots_ligne [2]
0.00 0.29 21746/21746 normaliser_ligne [5]
0.08 0.20 1/1 trier_entrees [6]
0.02 0.01 1/1 analyser_bigrammes [12]
0.01 0.00 1/1 generer_texte [16]
0.01 0.00 1/1 decouper_lignes [15]
0.00 0.01 1/1 generer_vocabulaire [18]
0.00 0.00 1/1 ecart_type_longueur [21]
0.00 0.00 1/1 construire_rapport [22]
0.00 0.00 1/2 longueur_moyenne [20]
0.00 0.00 1/1 racine [25]
0.00 0.00 1/1 empreinte [24]
-----------------------------------------------
0.00 0.87 21746/21746 main [1]
[2] 58.1 0.00 0.87 21746 compter_mots_ligne [2]
0.00 0.78 150182/150182 compter_mot [3]
0.01 0.09 250000/250000 est_mot_vide [11]
-----------------------------------------------
0.00 0.78 150182/150182 compter_mots_ligne [2]
[3] 51.7 0.00 0.78 150182 compter_mot [3]
0.61 0.16 150182/150182 chercher_mot [4]
0.00 0.00 5866/32667 copier [19]
-----------------------------------------------
0.61 0.16 150182/150182 compter_mot [3]
[4] 51.6 0.61 0.16 150182 chercher_mot [4]
0.16 0.00 23216047/35261718 egales [8]
-----------------------------------------------
0.00 0.29 21746/21746 main [1]
[5] 19.0 0.00 0.29 21746 normaliser_ligne [5]
0.27 0.00 1561330/1605729 longueur [7]
0.01 0.00 1266663/1266663 en_minuscule [14]
0.00 0.00 1539584/5297256 est_lettre [13]
-----------------------------------------------
0.08 0.20 1/1 main [1]
[6] 19.0 0.08 0.20 1 trier_entrees [6]
0.09 0.12 17202045/17202045 doit_echanger [9]
-----------------------------------------------
0.00 0.00 5866/1605729 ecart_type_longueur [21]
0.00 0.00 11732/1605729 longueur_moyenne [20]
0.00 0.00 26801/1605729 ajouter [17]
0.27 0.00 1561330/1605729 normaliser_ligne [5]
[7] 18.7 0.28 0.00 1605729 longueur [7]
-----------------------------------------------
0.09 0.00 12045671/35261718 est_mot_vide [11]
0.16 0.00 23216047/35261718 chercher_mot [4]
[8] 16.7 0.25 0.00 35261718 egales [8]
-----------------------------------------------
0.09 0.12 17202045/17202045 trier_entrees [6]
[9] 13.7 0.09 0.12 17202045 doit_echanger [9]
0.12 0.00 12172087/12172087 comparer [10]
-----------------------------------------------
0.12 0.00 12172087/12172087 doit_echanger [9]
[10] 7.7 0.12 0.00 12172087 comparer [10]
-----------------------------------------------
0.01 0.09 250000/250000 compter_mots_ligne [2]
[11] 6.4 0.01 0.09 250000 est_mot_vide [11]
0.09 0.00 12045671/35261718 egales [8]
-----------------------------------------------
0.02 0.01 1/1 main [1]
[12] 1.8 0.02 0.01 1 analyser_bigrammes [12]
0.01 0.00 3757672/5297256 est_lettre [13]
-----------------------------------------------
0.00 0.00 1539584/5297256 normaliser_ligne [5]
0.01 0.00 3757672/5297256 analyser_bigrammes [12]
[13] 0.7 0.01 0.00 5297256 est_lettre [13]
-----------------------------------------------
0.01 0.00 1266663/1266663 normaliser_ligne [5]
[14] 0.7 0.01 0.00 1266663 en_minuscule [14]
-----------------------------------------------
0.01 0.00 1/1 main [1]
[15] 0.7 0.01 0.00 1 decouper_lignes [15]
-----------------------------------------------
0.01 0.00 1/1 main [1]
[16] 0.7 0.01 0.00 1 generer_texte [16]
0.00 0.00 900183/928117 alea [23]
-----------------------------------------------
0.00 0.00 5867/26801 construire_rapport [22]
0.00 0.01 20934/26801 generer_vocabulaire [18]
[17] 0.6 0.00 0.01 26801 ajouter [17]
0.00 0.00 26801/1605729 longueur [7]
0.00 0.00 26801/32667 copier [19]
-----------------------------------------------
0.00 0.01 1/1 main [1]
[18] 0.5 0.00 0.01 1 generer_vocabulaire [18]
0.00 0.01 20934/26801 ajouter [17]
0.00 0.00 27934/928117 alea [23]
-----------------------------------------------
0.00 0.00 5866/32667 compter_mot [3]
0.00 0.00 26801/32667 ajouter [17]
[19] 0.3 0.01 0.00 32667 copier [19]
-----------------------------------------------
0.00 0.00 1/2 ecart_type_longueur [21]
0.00 0.00 1/2 main [1]
[20] 0.1 0.00 0.00 2 longueur_moyenne [20]
0.00 0.00 11732/1605729 longueur [7]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[21] 0.1 0.00 0.00 1 ecart_type_longueur [21]
0.00 0.00 5866/1605729 longueur [7]
0.00 0.00 1/2 longueur_moyenne [20]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[22] 0.1 0.00 0.00 1 construire_rapport [22]
0.00 0.00 5867/26801 ajouter [17]
-----------------------------------------------
0.00 0.00 27934/928117 generer_vocabulaire [18]
0.00 0.00 900183/928117 generer_texte [16]
[23] 0.0 0.00 0.00 928117 alea [23]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[24] 0.0 0.00 0.00 1 empreinte [24]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[25] 0.0 0.00 0.00 1 racine [25]
-----------------------------------------------
Index by function name
[17] ajouter [19] copier [11] est_mot_vide
[23] alea [15] decouper_lignes [16] generer_texte
[12] analyser_bigrammes [9] doit_echanger [18] generer_vocabulaire
[4] chercher_mot [21] ecart_type_longueur [7] longueur
[10] comparer [8] egales [20] longueur_moyenne
[3] compter_mot [24] empreinte [5] normaliser_ligne
[2] compter_mots_ligne [14] en_minuscule [25] racine
[22] construire_rapport [13] est_lettre [6] trier_entrees
+164
View File
@@ -0,0 +1,164 @@
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
40.54 0.90 0.90 308701874 0.00 0.00 egales
27.48 1.51 0.61 36009819 0.00 0.00 longueur
15.32 1.85 0.34 150182 0.00 0.01 chercher_mot
3.83 1.94 0.09 12172087 0.00 0.00 comparer
3.60 2.02 0.08 17202045 0.00 0.00 doit_echanger
2.70 2.08 0.06 5867 0.01 0.11 longueur_moyenne
2.70 2.13 0.06 1 60.00 225.00 trier_entrees
0.90 2.15 0.02 21746 0.00 0.06 compter_mots_ligne
0.90 2.17 0.02 1 20.00 27.09 analyser_bigrammes
0.68 2.19 0.01 32667 0.00 0.00 copier
0.45 2.20 0.01 5297256 0.00 0.00 est_lettre
0.45 2.21 0.01 250000 0.00 0.00 est_mot_vide
0.45 2.22 0.01 1 10.00 10.00 generer_texte
0.00 2.22 0.00 1266663 0.00 0.00 en_minuscule
0.00 2.22 0.00 928117 0.00 0.00 alea
0.00 2.22 0.00 150182 0.00 0.01 compter_mot
0.00 2.22 0.00 26801 0.00 0.00 ajouter
0.00 2.22 0.00 21746 0.00 0.00 normaliser_ligne
0.00 2.22 0.00 1 0.00 2.79 construire_rapport
0.00 2.22 0.00 1 0.00 0.00 decouper_lignes
0.00 2.22 0.00 1 0.00 642.99 ecart_type_longueur
0.00 2.22 0.00 1 0.00 0.00 empreinte
0.00 2.22 0.00 1 0.00 9.97 generer_vocabulaire
0.00 2.22 0.00 1 0.00 0.00 racine
Call graph
granularity: each sample hit covers 4 byte(s) for 0.45% of 2.22 seconds
index % time self children called name
<spontaneous>
[1] 100.0 0.00 2.22 main [1]
0.02 1.25 21746/21746 compter_mots_ligne [2]
0.00 0.64 1/1 ecart_type_longueur [7]
0.06 0.17 1/1 trier_entrees [9]
0.00 0.03 21746/21746 normaliser_ligne [13]
0.02 0.01 1/1 analyser_bigrammes [14]
0.01 0.00 1/1 generer_texte [18]
0.00 0.01 1/1 generer_vocabulaire [19]
0.00 0.00 1/1 construire_rapport [20]
0.00 0.00 1/5867 longueur_moyenne [6]
0.00 0.00 1/1 decouper_lignes [23]
0.00 0.00 1/1 racine [25]
0.00 0.00 1/1 empreinte [24]
-----------------------------------------------
0.02 1.25 21746/21746 main [1]
[2] 57.3 0.02 1.25 21746 compter_mots_ligne [2]
0.00 1.21 150182/150182 compter_mot [3]
0.01 0.04 250000/250000 est_mot_vide [12]
-----------------------------------------------
0.00 1.21 150182/150182 compter_mots_ligne [2]
[3] 54.4 0.00 1.21 150182 compter_mot [3]
0.34 0.86 150182/150182 chercher_mot [4]
0.00 0.00 5866/32667 copier [15]
-----------------------------------------------
0.34 0.86 150182/150182 compter_mot [3]
[4] 54.3 0.34 0.86 150182 chercher_mot [4]
0.86 0.00 296656203/308701874 egales [5]
-----------------------------------------------
0.04 0.00 12045671/308701874 est_mot_vide [12]
0.86 0.00 296656203/308701874 chercher_mot [4]
[5] 40.5 0.90 0.00 308701874 egales [5]
-----------------------------------------------
0.00 0.00 1/5867 main [1]
0.06 0.58 5866/5867 ecart_type_longueur [7]
[6] 29.0 0.06 0.58 5867 longueur_moyenne [6]
0.58 0.00 34415822/36009819 longueur [8]
-----------------------------------------------
0.00 0.64 1/1 main [1]
[7] 29.0 0.00 0.64 1 ecart_type_longueur [7]
0.06 0.58 5866/5867 longueur_moyenne [6]
0.00 0.00 5866/36009819 longueur [8]
-----------------------------------------------
0.00 0.00 5866/36009819 ecart_type_longueur [7]
0.00 0.00 26801/36009819 ajouter [16]
0.03 0.00 1561330/36009819 normaliser_ligne [13]
0.58 0.00 34415822/36009819 longueur_moyenne [6]
[8] 27.5 0.61 0.00 36009819 longueur [8]
-----------------------------------------------
0.06 0.17 1/1 main [1]
[9] 10.1 0.06 0.17 1 trier_entrees [9]
0.08 0.09 17202045/17202045 doit_echanger [10]
-----------------------------------------------
0.08 0.09 17202045/17202045 trier_entrees [9]
[10] 7.4 0.08 0.09 17202045 doit_echanger [10]
0.09 0.00 12172087/12172087 comparer [11]
-----------------------------------------------
0.09 0.00 12172087/12172087 doit_echanger [10]
[11] 3.8 0.09 0.00 12172087 comparer [11]
-----------------------------------------------
0.01 0.04 250000/250000 compter_mots_ligne [2]
[12] 2.0 0.01 0.04 250000 est_mot_vide [12]
0.04 0.00 12045671/308701874 egales [5]
-----------------------------------------------
0.00 0.03 21746/21746 main [1]
[13] 1.3 0.00 0.03 21746 normaliser_ligne [13]
0.03 0.00 1561330/36009819 longueur [8]
0.00 0.00 1539584/5297256 est_lettre [17]
0.00 0.00 1266663/1266663 en_minuscule [21]
-----------------------------------------------
0.02 0.01 1/1 main [1]
[14] 1.2 0.02 0.01 1 analyser_bigrammes [14]
0.01 0.00 3757672/5297256 est_lettre [17]
-----------------------------------------------
0.00 0.00 5866/32667 compter_mot [3]
0.01 0.00 26801/32667 ajouter [16]
[15] 0.7 0.01 0.00 32667 copier [15]
-----------------------------------------------
0.00 0.00 5867/26801 construire_rapport [20]
0.00 0.01 20934/26801 generer_vocabulaire [19]
[16] 0.6 0.00 0.01 26801 ajouter [16]
0.01 0.00 26801/32667 copier [15]
0.00 0.00 26801/36009819 longueur [8]
-----------------------------------------------
0.00 0.00 1539584/5297256 normaliser_ligne [13]
0.01 0.00 3757672/5297256 analyser_bigrammes [14]
[17] 0.5 0.01 0.00 5297256 est_lettre [17]
-----------------------------------------------
0.01 0.00 1/1 main [1]
[18] 0.5 0.01 0.00 1 generer_texte [18]
0.00 0.00 900183/928117 alea [22]
-----------------------------------------------
0.00 0.01 1/1 main [1]
[19] 0.4 0.00 0.01 1 generer_vocabulaire [19]
0.00 0.01 20934/26801 ajouter [16]
0.00 0.00 27934/928117 alea [22]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[20] 0.1 0.00 0.00 1 construire_rapport [20]
0.00 0.00 5867/26801 ajouter [16]
-----------------------------------------------
0.00 0.00 1266663/1266663 normaliser_ligne [13]
[21] 0.0 0.00 0.00 1266663 en_minuscule [21]
-----------------------------------------------
0.00 0.00 27934/928117 generer_vocabulaire [19]
0.00 0.00 900183/928117 generer_texte [18]
[22] 0.0 0.00 0.00 928117 alea [22]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[23] 0.0 0.00 0.00 1 decouper_lignes [23]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[24] 0.0 0.00 0.00 1 empreinte [24]
-----------------------------------------------
0.00 0.00 1/1 main [1]
[25] 0.0 0.00 0.00 1 racine [25]
-----------------------------------------------
Index by function name
[16] ajouter [15] copier [12] est_mot_vide
[22] alea [23] decouper_lignes [18] generer_texte
[14] analyser_bigrammes [10] doit_echanger [19] generer_vocabulaire
[4] chercher_mot [7] ecart_type_longueur [8] longueur
[11] comparer [5] egales [6] longueur_moyenne
[3] compter_mot [24] empreinte [13] normaliser_ligne
[2] compter_mots_ligne [21] en_minuscule [25] racine
[20] construire_rapport [17] est_lettre [9] trier_entrees