Organise le dépôt et numérote les profils par étape

This commit is contained in:
rabot
2026-10-07 15:48:27 +02:00
parent 19ad9b7b33
commit 875af6fe9e
25 changed files with 211 additions and 65 deletions
+41 -34
View File
@@ -1,45 +1,52 @@
# TD — Consignes
# Analyseur de fréquence de mots — TD R5.A.04
## Travail demandé
Optimisation d'un analyseur C par mesure du temps, étude des profils et
réduction du travail répété. Le rapport doit conserver l'empreinte
**`1d53de903efd2b7c`**.
1. **Mesurer**
## Organisation
Compilez le programme sans `-pg`, lancez-le avec `time`, puis notez le
temps d'exécution et l'empreinte mémoire.
```text
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 numérotés de 00 à 08
resultats/mesures/ Mesures brutes CSV et conditions des expériences
resultats/rapport_reference.txt Rapport attendu
COMPTE_RENDU.md Compte rendu noté
build/ Fichiers générés localement, ignorés par Git
```
2. **Profiler**
## Compiler et vérifier
Recompilez en `-O0` avec `-pg`, lancez le programme, puis générez le
profil dans `profil_avant.txt` avec `gprof`.
GCC, GNU Make et `gprof` sont nécessaires pour les commandes de profiling.
Depuis la racine du dépôt :
3. **Analyser**
```bash
make # Compiler en -O0, sans instrumentation
make run # Exécuter ; le rapport est écrit dans build/rapport.txt
make check # Exécuter et comparer le rapport à la référence
make profile # Produire build/profil/profil.txt avec -pg et gprof
make clean # Supprimer les fichiers générés de build/
```
Étudiez le profil plat et le graphe d'appels : où le temps est-il passé,
et pourquoi ?
Pour mesurer le temps du programme après compilation :
4. **Proposer**
```bash
cd build
time ./analyseur
```
Listez les pistes d'amélioration, classées par gain attendu.
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/`.
5. **Optimiser**
## Documents et résultats
Réalisez une optimisation par commit. L'empreinte mémoire doit rester
identique.
6. **Valider**
Reprofilez le programme dans `profil_apres.txt` et chiffrez le gain
obtenu.
## Compte rendu noté
Le fichier `COMPTE_RENDU.md` doit être présent à la racine de votre fork.
Il doit contenir :
- les temps avant et après optimisation ;
- l'analyse du profil ;
- les pistes d'amélioration proposées ;
- les optimisations réalisées ;
- les gains mesurés.
> **Contrôle continu** — Le compte rendu est évalué dans le cadre du TD.
- [Compte rendu](COMPTE_RENDU.md)
- [Consignes du TD](docs/CONSIGNES.md) et [support PDF](docs/R5A04_Profiling_MM.pdf)
- [Journal des mesures](docs/notes.md)
- [Ordre des profils et expériences](resultats/README.md)
- [Comparaison de la normalisation sur le même PC](resultats/mesures/comparaison_normalisation_meme_pc.csv)