AigleDor Posté(e) le 11 novembre 2005 Partager Posté(e) le 11 novembre 2005 Bonjour, Je voudrais connaitre les différente méthodes qui existent pour mesurer le temps à l'intérieur d'un programme. La plus accrue consiste je pense à consulter la valeur d'un registre CPU qui est incrémenté à chaque coup d'horloge avant et après, et ainsi déduire le temps qui s'est écoulé. Je suis intéressé par cette méthode. Si vous avez des exemples de code ou savez ou je puisse en trouver je suis preneur. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 11 novembre 2005 Partager Posté(e) le 11 novembre 2005 Autre technique : getMicroTime (ou équivalent) au début, et comparaison avec le microtime. Comme ça, si t'as pas besoin d'afficher le temps du programme tout le temps, tu évite des incrémentations déjà faite en fait. Lien vers le commentaire Partager sur d’autres sites More sharing options...
AigleDor Posté(e) le 11 novembre 2005 Auteur Partager Posté(e) le 11 novembre 2005 C'est disponible dans quel librairie? Quand je vois les mjuscule/minuscule de la faonction ça me fait penser à une langage orienté objet... Je cherche quelque chose de précis, donc bas niveau (glibc, appels système, instructions asm...) Je suis sur une piste: <time.h> de la glibc. Mais si vous avez d'autres propositions n'hésitez pas! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Captain Hadock Posté(e) le 11 novembre 2005 Partager Posté(e) le 11 novembre 2005 C'est disponible dans quel librairie? Quand je vois les mjuscule/minuscule de la faonction ça me fait penser à une langage orienté objet... Je cherche quelque chose de précis, donc bas niveau (glibc, appels système, instructions asm...) Je suis sur une piste: <time.h> de la glibc. Mais si vous avez d'autres propositions n'hésitez pas! <time.h>dispose d'une fonction qui permet de récupperer le nombre de seconde écoulé depuis une certaine date (1991 par la je crois mais je peux me tromper) Par contre pas sur que cela permette des précisions extremes. Autrement en Win32, il y a des timers, mais si ce n'est pas ton cas ou que ce n'est pas comme ça que tu veu fonctionner il faut trouver autre chose. Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 11 novembre 2005 Partager Posté(e) le 11 novembre 2005 Tu n'avais pas donné le langage utilisé aussi. Je pense que la méthode de Baldurien c'est du java. Donc c'est du C je suppose. Pour le CPU, tu as clock. Sinon pour le temps tout court, tu as time ftime et gettimeofday. Ces fonctions sont dans time.h ou sys/time.h man nomdelafonction pour toutes les infos, ou google. EDIT : <time.h>dispose d'une fonction qui permet de récupperer le nombre de seconde écoulé depuis une certaine date (1991 par la je crois mais je peux me tromper)1er Janvier 1970 à 00h 00m 00s GMT, début de l'ère Unix Lien vers le commentaire Partager sur d’autres sites More sharing options...
Captain Hadock Posté(e) le 11 novembre 2005 Partager Posté(e) le 11 novembre 2005 EDIT : <time.h>dispose d'une fonction qui permet de récupperer le nombre de seconde écoulé depuis une certaine date (1991 par la je crois mais je peux me tromper)1er Janvier 1970 à 00h 00m 00s GMT, début de l'ère Unix 1991... Je me disait bien que c'était pas très cohérent la fonction time doit exister depuis plus de temps... Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 11 novembre 2005 Partager Posté(e) le 11 novembre 2005 #include <time.h> [...] long tim; printf("début du calcul\n"); tim = clock(); calcul(); printf("fin du calul : %ld\n", (long double) (clock() - tim) / (long double) (CLOCKS_PER_SEC) ); je crois que c'est le plus précis que tu puisses faire. clock() compte les coups d'horloge (bien sûr, comme n'importe quel compteur, il finit par revenir à zero au bout d'un certain temps :t'ranspi: - mais si tu en es à l'horloge près, c'est que ton prog ne va pas tourner pendant 107 ans... ) plus d'info sur man 3 clock Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 13 novembre 2005 Partager Posté(e) le 13 novembre 2005 Vi, c'est du Java. J'ai pas en tête la fonction C associée... en php, je dirais bien microtime(). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.