2011-06-24 9 views
1

Possible en double:
fast elapsed time on linuxMesurer le temps écoulé en C++

Comment puis-je mesurer combien de temps une fonction nécessaire à l'exécution en C++? Ce serait mieux si je pouvais obtenir le temps à une fraction de milliseconde, mais si pas la précision à une milliseconde devrait être assez bon. Je cours Ubuntu 11.04 si cela signifie n'importe quoi.

Répondre

-2
#include <ctime> 
int main(){ 
    clock_t start = clock(); 
    // your program goes here 
    clock_t ends = clock(); 
    cout << "Time elapsed: " << (double) (ends - start)/CLOCKS_PER_SEC << endl; 
    return 0; 
} 
+2

Il s'agit d'une approximation de très faible précision plutôt que d'un temps écoulé. Division par CLOCKS_PER_SEC semble également étrange car il s'agit d'une macro codée en dur qui ne représente pas vraiment un nombre d'horloges par seconde. De plus, ce n'est pas une horloge murale. Donc, si le processus en temps réel a été échangé, il vous donnera des résultats totalement bizarres ...: -] –

+1

Quelle est la précision de ce processus? –

+1

@Vlad: clock_gettime est une alternative adéquate je suppose .. –

4

La meilleure horloge pour la mesure de la performance est l'horloge temps réel du système. Sous Linux, vous pouvez utiliser la fonction clock_gettime avec CLOCK_MONOTONIC ou CLOCK_MONOTONIC_RAW. Ceux-ci vous donneront une précision de l'ordre de la nanoseconde.