Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
967 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Temps d'execution d'un programme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Temps d'execution d'un programme

n°1470863
tytyy
Posté le 05-11-2006 à 17:16:03  profilanswer
 

Bonjour,
 
J'ai écris une fonction en C++ très simple qui fait un recherche séquentielle dans un tableau et je voudrai connaitre le temps qu'a mis la fonction à s'exécuter.  
 
Pour cela j'utilise la fonction clock() avant et après la ma fonction de recherche, mais j'obtiens le même temps en entrée et en sortie. Est-ce que la methode que j'utilise est mauvaise ou mon PC trop rapide  :??:  ??
 
Mon but final est de comparer la complexité de la fonction precedente avec un autre fonction de recherche mais récursive.
 
Connaitriez vous d'autres méthodes pour récupérer le temps d'exécution d'un bout de code, ou si ca vient de mon PC un methode plus precise.
 
Merci !!

mood
Publicité
Posté le 05-11-2006 à 17:16:03  profilanswer
 

n°1470883
nargy
Posté le 05-11-2006 à 18:43:35  profilanswer
 

J'utilise gettimeofday(), mais c'est la même résolution: 1microseconde. Ça ne suffit pas du tout si la fonction est trop rapide ou que la différence entre deux fonctions est minime. Dans ce cas, exécute en boulce tes fonctions (de 1000 à 1million de fois), tu auras plus de précision.

n°1470887
Amonchakai
Posté le 05-11-2006 à 18:52:10  profilanswer
 

Salut !
il existe aussi les fonctions :
QueryPerformanceFrequency() et QueryPerformanceCounter()
http://msdn.microsoft.com/library/ [...] ounter.asp
mais bon, c'est Win32 donc pas portable...  
 

n°1470889
KangOl
Profil : pointeur
Posté le 05-11-2006 à 18:55:12  profilanswer
 

pour bien faire, faut lancer la méthode  
n*m fois
 
m fois parce qu'une seule fois c'est pas assez
et n fois le tout pour faire des stats basiques (min, max, moyen, ecart-type)

n°1470893
tytyy
Posté le 05-11-2006 à 19:09:46  profilanswer
 

Si j'ai bien compris entre les 2 clock() je doit lancer plusieurs fois ma méthode pour pouvoir avoir un temps significatif

n°1470958
matafan
Posté le 05-11-2006 à 23:10:16  profilanswer
 

Le problème si tu lances ta méthode plusieurs fois pour la mesure, c'est que tu ne mesure plus la même chose puisque les caches sont déja "chauds" après la première passe. Suivant ce que ta fonction fait, elle peut très bien aller 2 fois plus vite après la première exécution.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Temps d'execution d'un programme

 

Sujets relatifs
Aide programme C++[C] comment simuler l'écoulement du temps ?
[QST] Suspendre execution de progamme ?Executer un programme java avec Eclipse
temps d'execution qui augmenteaide pour un programme en c++
Créer un petit programme pr archivage msnprobleme sous programme gtk
Souci à l'execution de softs écrits en c# + directx managed 2.0 
Plus de sujets relatifs à : Temps d'execution d'un programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR