clock_gettime() est la bonne fonction à appeler en effet. Avec l'option CLOCK_REALTIME si je me souviens bien.
La seule différente entre clock_gettime(CLOCK_REALTIME) et gettimeofday c'est la perte de précision entre le timespec qui est en nsec et le timeval qui est en msec et fais un: tv->tv_usec /= 1000;
Faut faire pas mal gaffe en descendant à ces précisions car ca devient difficile de mesurer quelque chose.
Le coup du taskset est en effet une bonne idée pour les benchs mais aussi pour dispatcher manuellement le code métier. Le scheduler reste mauvais sur l'affinité, et c'est pas rare de gratter 10-30% de perf la dessus plutôt que laisser les threads se balader…
[^] # Re: y'a trop peu d'infos pour t'aider.
Posté par ckyl . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.
La seule différente entre
clock_gettime(CLOCK_REALTIME)etgettimeofdayc'est la perte de précision entre letimespecqui est en nsec et letimevalqui est en msec et fais un:tv->tv_usec /= 1000;Faut faire pas mal gaffe en descendant à ces précisions car ca devient difficile de mesurer quelque chose.
Le coup du taskset est en effet une bonne idée pour les benchs mais aussi pour dispatcher manuellement le code métier. Le scheduler reste mauvais sur l'affinité, et c'est pas rare de gratter 10-30% de perf la dessus plutôt que laisser les threads se balader…