Increase maximum text word count and optimize line splitting function

This commit is contained in:
rabot
2026-10-07 16:42:17 +02:00
parent 875af6fe9e
commit 14c89b3963
15 changed files with 7148 additions and 27 deletions
+29 -5
View File
@@ -1,8 +1,10 @@
# Résultats conservés
Les profils suivent l'ordre des optimisations. Les commits indiqués
contiennent les versions de `analyseur.c` utilisées à ces étapes, avant
le déplacement des sources dans `src/`.
Les profils 00 à 09 portent sur **250 000 mots** et suivent l'ordre des
optimisations. Les commits des étapes
00 à 08 contiennent les versions de `analyseur.c` avant son déplacement
dans `src/`. Pour l'étape 09, les conditions de mesure identifient le
commit de référence et les empreintes SHA-256 des deux sources comparées.
| Étape | Profil | Version du code |
| --- | --- | --- |
@@ -15,6 +17,7 @@ le déplacement des sources dans `src/`.
| 06 — Analyse des bigrammes | [06_bigrammes.txt](profils/06_bigrammes.txt) | `e3076e4` |
| 07 — Index des mots vides | [07_mots_vides.txt](profils/07_mots_vides.txt) | `1331811` |
| 08 — Table de normalisation | [08_normalisation.txt](profils/08_normalisation.txt) | `19ad9b7` |
| 09 — Découpage en place | [09_decoupage.txt](profils/09_decoupage.txt) | [Sources et empreintes SHA-256](mesures/comparaison_decoupage_meme_pc.json) |
Les [mesures du bilan après le tri](mesures/mesures_bilan_tri.csv) comparent
le programme initial à l'étape 05. La colonne `final` désigne cette étape.
@@ -24,8 +27,29 @@ compare les étapes 07 et 08 sur le même PC, avec 50 mesures par version.
Les [conditions et statistiques](mesures/comparaison_normalisation_meme_pc.json)
précisent la machine, le compilateur, les sources et le protocole.
Le [rapport de référence](rapport_reference.txt) conserve l'empreinte
`1d53de903efd2b7c`. `make check` compare le rapport courant à ce fichier.
La [comparaison du découpage](mesures/comparaison_decoupage_meme_pc.csv)
compare les étapes 08 et 09 sur le même PC, avec 50 mesures de temps par
version. Le [pic mémoire](mesures/comparaison_decoupage_memoire.csv) est
mesuré séparément avec GNU time, cinq fois par version. Les
[conditions et statistiques](mesures/comparaison_decoupage_meme_pc.json)
décrivent les deux séries et les vérifications des résultats.
La comparaison complémentaire à **10 000 000 mots** est conservée séparément :
- [Profil avant découpage](profils/10000000_mots/avant_decoupage.txt).
- [Profil après découpage](profils/10000000_mots/apres_decoupage.txt).
- [Mesures brutes](mesures/comparaison_decoupage_10000000.csv) et
[conditions et statistiques](mesures/comparaison_decoupage_10000000.json).
Elle utilise deux mesures sans `-pg` et une exécution profilée par version,
sur le même CPU. Le seul changement de la version de référence est le
nombre de mots ; la version comparée ajoute le découpage en place.
Le [rapport historique](rapport_reference.txt), pour 250 000 mots, conserve
l'empreinte `1d53de903efd2b7c`. La [référence actuelle à 10 millions](rapport_reference_10000000.txt)
a l'empreinte `b35be1258a9cb3f6`. Elle provient de la version avant découpage
et a été vérifiée à l'identique avec la version après découpage.
`make check` compare maintenant le rapport courant à cette nouvelle référence.
Les commandes historiques et les autres mesures sont décrites dans le
[journal](../docs/notes.md). Chaque gain de temps doit être calculé à partir