obtention du temps en millisecond en C,C++ - C - Programmation
Marsh Posté le 03-08-2004 à 15:04:12
tu bosses sous quel OS ?
Marsh Posté le 03-08-2004 à 15:33:19
sinon en assembleur, t'as le redoutable RDTSC qui te refile le nombre de cycles d'un bout de code !
en faisant le ration RDTSC/fréquence du processeur, on obtient une mesure imparable
Marsh Posté le 03-08-2004 à 16:16:03
sous Windows, comme dit harko, RDTSC et/ou QueryPerformanceCounter() (RDTSC variant suivant le CPU et son état, l'autre est invariant)
Marsh Posté le 03-08-2004 à 16:19:46
merci pour vos reponses,
je suis sous une redhat 9.0
Par contre je ne pense pas qu'un top d'horloge corresponde a un cycle processeur, donc je ne crois pas qu'on puisse en deduire le temps d'execution avec le ratio nb cycle/frequence processeur.
Marsh Posté le 03-08-2004 à 16:32:29
pour nunux, peut être gettimeofday():
http://www.rt.com/man/gettimeofday.2.html
et là tu as des mecs qui parlent de projet sur sourceforge:
http://www.ussg.iu.edu/hypermail/l [...] /0103.html
Marsh Posté le 03-08-2004 à 16:44:40
merci pour tout,
je vais de ce pas essayer gettimeofday et la comparer avec les autres solutions que j'ai pour voir laquelle se rapproche le mieux de la realite.
Marsh Posté le 03-08-2004 à 16:57:01
david81 a écrit : merci pour vos reponses, |
ben si !
exemple pour un processeur à 1 Ghz (soit 1 000 000 000 de cycles par secondes)
si RDTSC t'indique qu'une portion de code prend 200 000 cycles, alors le temps sera de 200 000/1 000 000 000 = 0,0002 secondes, soit 0,2 ms
Marsh Posté le 03-08-2004 à 20:04:24
La fréquence elle bouge pas
Marsh Posté le 03-08-2004 à 20:07:50
ça dépends de la puissance de ta carte graphique, la tienne doit être trop puissante (si tu veux j'ai une vieille matrox en stock )
Marsh Posté le 03-08-2004 à 20:19:07
J'ai une Riva TNT²
Marsh Posté le 03-08-2004 à 22:10:00
moi une ATI 9800 ...
Mai j' ai aussi de vieilles cartes avec 1 Mo de mem ...
Marsh Posté le 03-08-2004 à 22:12:52
je suis con, en fait je voulais poster ma réponse à la con là:
http://forum.hardware.fr/hardwaref [...] 5930-1.htm
Marsh Posté le 03-08-2004 à 22:14:56
Boulet
Marsh Posté le 04-08-2004 à 02:32:18
le relou.
pour en revenir au RDTSC, la fréquence peut bouger avec des cpus de portables, ou des Athlon 64 en Cool & Quiet (enfin je crois).
Marsh Posté le 04-08-2004 à 08:23:02
C'est bien ce qui me semblait
Marsh Posté le 04-08-2004 à 13:06:38
ok merci je vais me pencher sur la solution de RDTSC et voir ce que ca donne.
Marsh Posté le 04-08-2004 à 18:21:16
bah le mieux, ce serait de mesurer périodiquement la fréquence CPU (du style toutes les 10ms tu recalcules la fréquence CPU), comme ça fait un truc exploitable sur les PC portables et les systèmes qui font varier la fréquence CPU.
Marsh Posté le 03-08-2004 à 14:59:17
Bonjour a tous,
J'aimerais obtenir le temps d'execution d'un bout de code en milliseconde. Malheureusement la librairie time.h ne permet d'obtenir que le temps en seconde, ce qui n'est pas suffisamment precis dans mon cas.
D'autres librairies permettent elles cela?
Merci d'avance.