Compare commits

...

4 Commits
main ... main

Author SHA1 Message Date
b9cd441755 Téléverser les fichiers vers "/" 2024-09-03 12:20:19 +02:00
92d00c35e2 Actualiser student_rank.c 2024-09-03 12:19:09 +02:00
611bfa9fa2 Supprimer Note 2024-09-03 12:02:37 +02:00
93bee311db Téléverser les fichiers vers "/" 2024-09-03 12:00:32 +02:00
2 changed files with 45 additions and 1 deletions

44
Note Normal file
View File

@ -0,0 +1,44 @@
gprof./studend_rank
La commande gprof génère un profil d'exécution de programmes C, FORTRAN ou COBOL. L'effet des routines appelées est incorporé dans le profil de chaque appelant. La commande gprof permet d'identifier comment un programme consomme des ressources processeur. Pour savoir quelles fonctions (routines) du programme utilisent le processeur, vous pouvez profiler le programme à l'aide de la commande gprof .
-> D'après la définition, j'ai déjà pu comprendre que la commande gprof est utilisé pour comprendre le processus consommation d'un programme.
% : le pourcentage de la durée totale du programme horaire utilisé par cette fonction.
programme horaire utilisé par cette fonction.
cumulative : somme du nombre de secondes comptabilisées par cette fonction et par celles qui lui sont supérieures.
secondes comptabilisées par cette fonction et celles listées au-dessus d'elle.
self seconds le nombre de secondes comptabilisées par cette fonction
seule. Il s'agit du principal tri de cette
liste.
calls le nombre de fois où cette fonction a été invoquée, si cette fonction est profilée, sinon vide.
cette fonction est profilée, sinon, il n'y a rien.
self ms/call le nombre moyen de millisecondes passées dans cette fonction par appel, si cette fonction est profilée, sinon vide.
par appel, si cette fonction est profilée,
sinon, rien.
total ms/call le nombre moyen de millisecondes passées dans cette fonction ms/appel et ses descendants, si cette fonction est profilée, sinon vide.
fonction et ses descendants par appel, si cette fonction est profilée, sinon
si cette fonction est profilée, sinon blanc.
name : le nom de la fonction. Il s'agit du tri mineur
pour cette liste. L'index indique l'emplacement de la fonction
la fonction dans la liste gprof. Si l'index est
entre parenthèses, il indique l'endroit où elle apparaîtrait dans la liste
la liste gprof si elle devait être imprimée.
-> J'ai pu bien comprendre en traduisant les termes en français.
Le FlatProfile permet de faire une analyse plus rapide mais pas complète.
time ./student_rank 1000 10000 0
-> Le temps d'éxécution me prend 44 secondes dans mon pc.
Je sais aussi que le Main appelle generate_rank, generate_grades, free_array et sort_students.
generate_grades appelle generaes_array et ainsi de suite.
Je suis passé de 44 secondes d'éxécution à 1 seconde en enlevant bubblesort dans la fonction find_rank_student.
Si on remplace bubblesort par heapsort, ça prend + de temps d'éxécution.

View File

@ -55,7 +55,7 @@ int find_rank_student(int student_grade, int* grades_array, int students_number)
{
int position = -1;
int i = 0;
bubblesort(grades_array,students_number);
//bubblesort(grades_array,students_number);
for(i = students_number-1; i >= 0; i--)
{
if(grades_array[i] == student_grade)