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

  FORUM HardWare.fr
  Programmation
  C++

  Temps d'exécution en millisecondes (linux/windows) + multithreads

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Temps d'exécution en millisecondes (linux/windows) + multithreads

n°2069615
I_have_a_b​ig_problem
Posté le 13-04-2011 à 03:35:28  profilanswer
 

Bonjour à tous.
 
La question a été maintes fois posée, mais je n'ai pas trouvé de réponse qui me convienne.
 
Je cherche à récupérer le temps d'exécution "réel" d'un programme parallélisé à la milliseconde près  (le temps "vécu par l'utilisateur", pas la sommes des temps des thread indépendants) dans un programme en C++ (l'équivalent d'un time(NULL) puis difftime, mais à la milliseconde). Je cherche à le faire pour Windows et Linux (si la solution n'est pas portable, j'utiliserai des #ifdef) et je ne peux pas utiliser de bibliothèque externe (genre boost).  
 
Quelle est la solution la plus simple à ce problème ?
 
Mille merci par avance à celui qui me donnera la réponse car cela fait des lustres que je cherche la solution  :jap:

mood
Publicité
Posté le 13-04-2011 à 03:35:28  profilanswer
 

n°2069616
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 13-04-2011 à 03:44:36  profilanswer
 

Dit comme ça j'aurais été tenté de faire un gettimeofday au début du programme et à la fin du programme, et de soustraire les deux valeurs pour obtenir un truc qui théoriquement devrait être précis à la microseconde [:transparency]
 
Je sais pas s'il existe une meilleure méthode


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°2069623
Joel F
Real men use unique_ptr
Posté le 13-04-2011 à 07:41:53  profilanswer
 

mieux vaut une bonne vieille monotonic clock:
 
http://linux.die.net/man/3/clock_gettime

n°2069629
xilebo
noone
Posté le 13-04-2011 à 09:31:27  profilanswer
 

Sous Windows, tu as également la fonction QueryPerformanceCounter.

n°2069699
I_have_a_b​ig_problem
Posté le 13-04-2011 à 11:45:40  profilanswer
 

Merci !
 
Pour Windows, j'ai trouvé cet exemple très clair que tu donnais Joel F (sauf si QueryPerformanceCounter n'est pas OK vis à vis de la parallélisation) : http://forum.hardware.fr/hfr/Progr [...] 3723_1.htm
 
Mais 2 questions :
1) Ces solutions sont elles bien ok vis à vis de la parallélisation ?
2) Pour linux, j'ai du mal à comprendre car certains sites évoquent struct timespec avec tv_nsec (nanosecondes) et d'autres avec tv_usec (microsecondes). Du coup quelle est la bonne version ? (et tv_nsec c'est en nanosecondes, en dizaine ou en centaine de nanosecondes) ? De plus monotonic clock ça marche sur tous les systèmes linux ?


Message édité par I_have_a_big_problem le 13-04-2011 à 11:47:14

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

  Temps d'exécution en millisecondes (linux/windows) + multithreads

 

Sujets relatifs
Activer/Désactiver un service sur poste windows distant[RESOLU] connexion SSH2 sous windows
Faire un grep sous windowsChargement des styles Windows XP OK, mais polices moches
Mesurer le temps d'exec d'une fonction[Linux] Accéder dynamiquement à l'addresse d'une fonction statique
Programmation Java/C sous Linux/Windows^^Apache sur un Windows Server 2003 - Gestion des droits
compiler un programme linux pour le rendre executable sous windows 
Plus de sujets relatifs à : Temps d'exécution en millisecondes (linux/windows) + multithreads


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