This commit is contained in:
Come THURET 2024-09-03 11:20:13 +02:00
parent 7106413011
commit fa71f93fe5

View File

@ -27,9 +27,9 @@ Each sample counts as 0.01 seconds.
```
par exemple on peut voir que la fonction bubblesort a été appelée 30 fois et que la fonction find_rank_student a été appelée 25 fois.
30 appel de bubblesort et 25 appel de find_rank_student
exemple du call graph :
call graph :
``` Call graph (explanation follows)
@ -68,18 +68,23 @@ index % time self children called name
[9] 0.0 0.00 0.00 1 sort_students [9]
0.00 0.00 25/25 find_rank_student [2]
0.00 0.00 5/30 bubblesort [1]
-----------------------------------------------```
-----------------------------------------------
par exemple on peut voir que la fonction bubblesort a été appelée 30 fois, 5 fois par la fonction sort_students et 25 fois par la fonction find_rank_student.
la fonction find_rank_student a été appelée 25 fois par sort_students et à chaque fois elle appelle la fonction bubblesort.
```
on a relancé le scénario en changeant les paramètres de la commande :
- 30 appel de bubblesort
- 5 appel de sort_student
- 25 appel de find_rank_student
sort_student appel 25 fois find_rank_student et 5 fois bubblesort
find_rank_student appel 25 fois bubblesort
nouveau scénario via la commande suivante :
```./student_rank 1000 1000 0```
on a relancé gprof avec la commande suivante :
lancement de gprof :
```gprof ./student_rank```
un apperçu du résultat est donné ci-dessous :
résultats:
```Flat profile:
Each sample counts as 0.01 seconds.
@ -91,12 +96,15 @@ Each sample counts as 0.01 seconds.
0.00 6.15 0.00 1000 0.00 0.00 generate_array
0.00 6.15 0.00 2 0.00 0.00 free_array
0.00 6.15 0.00 1 0.00 0.00 generate_grades
0.00 6.15 0.00 1 0.00 0.00 generate_ranks```
0.00 6.15 0.00 1 0.00 0.00 generate_ranks
en comparaison avec le premier scénario, on peut voir que la fonction bubblesort a été appelée 1001000 fois et que la fonction find_rank_student a été appelée 1000000 fois.
on peut voir aussi que le programme a passé 6.15 secondes à exécuter alors que dans le premier scénario il n'a pas accumulé de temps.
```
exemple du call graph :
- 1001000 appel de bubblesort
- 1000000 appel de find_rank_student
execution du programme en 6.15s
call graph :
``` Call graph (explanation follows)
@ -135,4 +143,8 @@ index % time self children called name
-----------------------------------------------
0.00 0.00 1/1 main [2]
[8] 0.0 0.00 0.00 1 generate_ranks [8]
-----------------------------------------------```
-----------------------------------------------
```
**optimisation du programme :**