forked from menault/TD1_DEV51_Qualite_Algo
TD1
This commit is contained in:
90
Compte Rendu/README.md
Normal file
90
Compte Rendu/README.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Test
|
||||
|
||||
J'ai lancé l'algo avec 100k étudiants et 1k notes<br>
|
||||
ça prends du temps...
|
||||
|
||||
Pour 100 et 100 ça marche bien,<br>
|
||||
pour 1k et 1k ça prends 3s~<br>
|
||||
Pour 5k étudiants, ça a pris... pas eu le temps de finir<br>
|
||||
|
||||
On va donc prendre 1k étudiants et 1k notes pour le profiling <br>
|
||||
|
||||
<br>
|
||||
|
||||
# Partie gprof
|
||||
|
||||
### Flat profile
|
||||
|
||||
le temps et nombre dexecutions par fonction
|
||||
|
||||
### Call graph
|
||||
|
||||
Voir l'arbre d'appel, le temps et nombre d'appel par fonction
|
||||
|
||||
## Analyse
|
||||
|
||||
Le plus de temps a été pris par bubblesort
|
||||
|
||||
<details>
|
||||
<summary>Flat Profile</summary>
|
||||
% cumulative self self total <br>
|
||||
time seconds seconds calls s/call s/call name <br>
|
||||
78.10 2.30 2.30 1001000 0.00 0.00 bubblesort<br>
|
||||
21.05 2.92 0.62 1000000 0.00 0.00 find_rank_student<br>
|
||||
1.02 2.96 0.03 1 0.03 2.96 sort_students<br>
|
||||
0.00 2.96 0.00 1000 0.00 0.00 generate_array<br>
|
||||
0.00 2.96 0.00 2 0.00 0.00 free_array<br>
|
||||
0.00 2.96 0.00 1 0.00 0.00 generate_grades<br>
|
||||
0.00 2.96 0.00 1 0.00 0.00 generate_ranks<br>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Call Graph</summary>
|
||||
index % time self children called name<br>
|
||||
0.03 2.92 1/1 main [2]<br>
|
||||
[1] 100.0 0.03 2.92 1 sort_students [1]<br>
|
||||
0.62 2.30 1000000/1000000 find_rank_student [3]<br>
|
||||
0.00 0.00 1000/1001000 bubblesort [4]<br>
|
||||
-----------------------------------------------<br>
|
||||
<spontaneous><br>
|
||||
[2] 100.0 0.00 2.96 main [2]<br>
|
||||
0.03 2.92 1/1 sort_students [1]<br>
|
||||
0.00 0.00 2/2 free_array [6]<br>
|
||||
0.00 0.00 1/1 generate_grades [7]<br>
|
||||
0.00 0.00 1/1 generate_ranks [8]<br>
|
||||
-----------------------------------------------<br>
|
||||
0.62 2.30 1000000/1000000 sort_students [1]<br>
|
||||
[3] 98.9 0.62 2.30 1000000 find_rank_student [3]<br>
|
||||
2.30 0.00 1000000/1001000 bubblesort [4] <-- gros probleme ici<br>
|
||||
-----------------------------------------------<br>
|
||||
0.00 0.00 1000/1001000 sort_students [1]<br>
|
||||
2.30 0.00 1000000/1001000 find_rank_student [3] <-- gros probleme ici<br>
|
||||
[4] 78.0 2.30 0.00 1001000 bubblesort [4] <-- gros probleme ici<br>
|
||||
-----------------------------------------------<br>
|
||||
0.00 0.00 1000/1000 generate_grades [7]<br>
|
||||
[5] 0.0 0.00 0.00 1000 generate_array [5]<br>
|
||||
-----------------------------------------------<br>
|
||||
0.00 0.00 2/2 main [2]<br>
|
||||
[6] 0.0 0.00 0.00 2 free_array [6]<br>
|
||||
-----------------------------------------------<br>
|
||||
0.00 0.00 1/1 main [2]<br>
|
||||
[7] 0.0 0.00 0.00 1 generate_grades [7]<br>
|
||||
0.00 0.00 1000/1000 generate_array [5]<br>
|
||||
-----------------------------------------------<br>
|
||||
0.00 0.00 1/1 main [2]<br>
|
||||
[8] 0.0 0.00 0.00 1 generate_ranks [8]<br>
|
||||
-----------------------------------------------<br>
|
||||
</details>
|
||||
|
||||
|
||||
## Changements dans le code
|
||||
|
||||
Un bubblesort inutile se trouvait dans la fonction find_rank_student, après l'avoir retiré ça passe à 0.4s.
|
||||
Mais maintenant c'est buggé
|
||||
|
||||
pour faire ce changement il faut changer while(swapped==1);
|
||||
car c'est possible qu'il faut faire plusieurs changements, donc il faut le changer en : while(swapped>0)
|
||||
|
||||
# Passer au heapsort
|
||||
|
||||
c'est rapide
|
Reference in New Issue
Block a user