diff --git a/Compte_Rendu b/Compte_Rendu new file mode 100644 index 0000000..78223fb --- /dev/null +++ b/Compte_Rendu @@ -0,0 +1,25 @@ +Graphe d'appel (call graph) -> au dessus de l'index ce sont les fonctions appelantes de la fonction et en dessous ce sont les appelées + +deux partie avec gprof -> flat profile et call graph l'un est concis, + rapide - détaillé et l'autre est bcp plus détaillé et précis + +avec le call graph on peut comprendre et retracer le fonctionnement du programme + +on se rend compte que bubblesort prend 80% du temps et find-rank 20% du temps -> L'objectif est donc d'améliorer ça en limitant le nombre d'appel de bubblesort + +gprof -b ./student_rank -> enlève les exlication du l'affichage // -pg pour gprof + +On peut enlever un bubble sort en trop, celui dans find_rank_student pour eviter de trier le tableau deux fois (bug car code raté :)) + +On passe de 30 secondes à >1s + +----- + +Essayer de changer de fonction pour utiliser heapsort à la place du bubblesort n'est pas vraiment utile car on ne gagne pas de temps + +---- + +La derniere chose à faire est d'essayer d'optimiser la fonction bubblesort, problème le tri est déjà optimisé + +PROFILING = MESURE + +valgrind mesure la mémoire, permet de savoir si il y a des fuites et donne des informations dessus ( fonction / fichier / lignes ) diff --git a/Compte_Rendu ~ b/Compte_Rendu ~ new file mode 100644 index 0000000..e69de29 diff --git a/gmon.out b/gmon.out new file mode 100644 index 0000000..1c4a1b8 Binary files /dev/null and b/gmon.out differ diff --git a/student_rank b/student_rank new file mode 100755 index 0000000..bb64371 Binary files /dev/null and b/student_rank differ diff --git a/student_rank.c b/student_rank.c index af84003..c6dc75a 100644 --- a/student_rank.c +++ b/student_rank.c @@ -55,7 +55,6 @@ int find_rank_student(int student_grade, int* grades_array, int students_number) { int position = -1; int i = 0; - bubblesort(grades_array,students_number); for(i = students_number-1; i >= 0; i--) { if(grades_array[i] == student_grade)