Analyseur de fréquence de mots — TD R5.A.04
Optimisation d'un analyseur C par mesure du temps, étude des profils et
réduction du travail répété. Le programme traite désormais 10 000 000 mots,
avec l'empreinte de référence b35be1258a9cb3f6.
Les résultats historiques sur 250 000 mots conservent leur référence
1d53de903efd2b7c. L'empreinte se compare à volume de texte identique.
Organisation
src/analyseur.c Programme principal
exemples/exemple.c Exemple de profiling fourni
docs/CONSIGNES.md Consignes originales du TD
docs/R5A04_Profiling_MM.pdf Support du cours
docs/notes.md Journal détaillé des mesures
resultats/profils/ Profils historiques de 00 à 09 (250 000 mots)
resultats/profils/10000000_mots/ Comparaison avant/après sur 10 millions de mots
resultats/mesures/ Mesures brutes CSV et conditions des expériences
resultats/rapport_reference.txt Référence historique (250 000 mots)
resultats/rapport_reference_10000000.txt Référence actuelle (10 millions)
COMPTE_RENDU.md Compte rendu noté
build/ Fichiers générés localement, ignorés par Git
Compiler et vérifier
GCC, GNU Make et gprof sont nécessaires pour les commandes de profiling.
Depuis la racine du dépôt :
make # Compiler en -O0, sans instrumentation
make run # Exécuter ; le rapport est écrit dans build/rapport.txt
make check # Exécuter et comparer à la référence de 10 millions de mots
make profile # Produire build/profil/profil.txt avec -pg et gprof
make clean # Supprimer les fichiers générés de build/
Pour mesurer le temps du programme après compilation :
cd build
time ./analyseur
Les mesures de temps utilisent le binaire sans -pg. Les profils archivés
dans resultats/ sont les résultats des différentes étapes ; make profile
écrit le nouveau profil dans build/profil/.
Le test à 10 millions de mots compare les versions avant et après le découpage en place, avec deux mesures sans instrumentation et un profil par version. Les rapports des deux versions sont identiques octet par octet.