J'ai un programme simple C comme suitGProf outil peformance pour pilote de périphérique de caractères
main(int argc, char *argv[])
{
/* Calling read function to character device driver*/
int fd = fopen("MyCharDevice",0);
/*write call to device and further code*/
return 0;
}
Maintenant, quand je suis le profilage à l'aide gprof
, je ne reçois pas le temps pour la fonction main()
lui-même. Où j'appelle mon périphérique char (dont je dois faire le profilage). J'ai essayé de mettre du code correspondant au pilote de périphérique appelant dans une autre fonction mais j'ai la même chose.
Contenu de analysis.txt
sont les suivantes:
Flat profile:
Each sample counts as 0.01 seconds.
no time accumulated
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
0.00 0.00 0.00 3 0.00 0.00 __gmon_start__
Call graph
granularity: each sample hit covers 4 byte(s) no time propagated
index % time self children called name
0.00 0.00 3/3 main [3]
[4] 0.0 0.00 0.00 3 __gmon_start__ [4]
-----------------------------------------------
Index by function name
[4] __gmon_start__
Je ne reçois pas comment puis-je obtenir le temps.
Mon exigence:
En fait je dois comparer et sémaphores R/W Sémaphore performance à l'aide des outils d'analyse des performances Linux. Donc j'utilise gprof
.