Bonsoir à tous,
Je vous expose mon problème, j'ai besoin de savoir le temps qu'un fils à tourner et donc je devais passer par getrusage mais j'ai un petit problème car je crée plusieurs fois un fils, un fork() dans une boucle while, donc la première fois il m'affiche bien une durée cohérente (1.x s), mais dès qu'il refait un fork il additionne les temps process de tout les fils ce qui fait que je me retrouve avec un process qui dure 1.x s en suite 3.x s et ainsi de suite.
Donc je voulais savoir si c'était possible de reset après chaque itération ou alors une option du wait que je ne connais peut-être pas qui permettrait ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ... usage.ru_majflt=0; usage.ru_utime.tv_sec=0; usage.ru_utime.tv_usec=0; if (fork()==0) { for(op=0;op<=1000000000;op++); //execvp ... exit(1); } waitpid(0,&stat,0); getrusage(RUSAGE_CHILDREN, &usage); printf("%ld pagefault\n",usage.ru_majflt); printf("%ld.%lds\n", usage.ru_utime.tv_sec,usage.ru_utime.tv_usec); ...
Partager