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) ``` 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] [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 25/25 find_rank_student [2]
0.00 0.00 5/30 bubblesort [1] 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``` ```./student_rank 1000 1000 0```
on a relancé gprof avec la commande suivante : lancement de gprof :
```gprof ./student_rank``` ```gprof ./student_rank```
un apperçu du résultat est donné ci-dessous : résultats:
```Flat profile: ```Flat profile:
Each sample counts as 0.01 seconds. 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 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 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_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) ``` Call graph (explanation follows)
@ -135,4 +143,8 @@ index % time self children called name
----------------------------------------------- -----------------------------------------------
0.00 0.00 1/1 main [2] 0.00 0.00 1/1 main [2]
[8] 0.0 0.00 0.00 1 generate_ranks [8] [8] 0.0 0.00 0.00 1 generate_ranks [8]
-----------------------------------------------``` -----------------------------------------------
```
**optimisation du programme :**