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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user