clock_gettime() est la bonne fonction à appeler en effet. Avec l'option CLOCK_REALTIME si je me souviens bien.
En pratique sur un mono-socket multi-cœur comme décrit pas steckdenis, RDTSC reste OK.
Une autre façon de mesurer (avec rdtsc ou clock_gettime ou gettimeofday …) est simplement d'enrober le programme dans un thread que tu forces à s'exécuter sur un cœur donné, et lui laisser le soin d'appeler le reste du programme. Ensuite, tu peux utiliser des trucs genre pthread_barrier_* ou autres machins faits maison pour garantir que tous les threads sont synchronisés puis reprendre la mesure depuis le threads « launcher ».
[^] # Re: y'a trop peu d'infos pour t'aider.
Posté par lasher . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 3.
clock_gettime()est la bonne fonction à appeler en effet. Avec l'optionCLOCK_REALTIMEsi je me souviens bien.En pratique sur un mono-socket multi-cœur comme décrit pas steckdenis, RDTSC reste OK.
Une autre façon de mesurer (avec
rdtscouclock_gettimeougettimeofday…) est simplement d'enrober le programme dans un thread que tu forces à s'exécuter sur un cœur donné, et lui laisser le soin d'appeler le reste du programme. Ensuite, tu peux utiliser des trucs genrepthread_barrier_*ou autres machins faits maison pour garantir que tous les threads sont synchronisés puis reprendre la mesure depuis le threads « launcher ».