Utilisation de l'horloge() pour mesurer le temps d'exécution

Je suis en cours d'exécution d'un programme C utilisant GCC et un DSP propriétaire cross-compilateur pour simuler certains functioality. J'utilise le code suivant pour mesurer le temps d'exécution de la partie de mon programme:

clock_t start,end;
printf("DECODING DATA:\n");
start=clock();
conv3_dec(encoded, decoded,3*length,0);
end=clock();
duration = (double)(end - start) / CLOCKS_PER_SEC;
printf("DECODING TIME = %f\n",duration);

conv3_dec() est une fonction définie dans mon programme et je veux trouver le moment de l'exécution de cette fonction.

Maintenant, la chose est quand mon programme s'exécute, le conv3_dec() fonctions s'exécute pendant près de 2 heures, mais la sortie de la printf("DECODING TIME = %f\n",duration) dit que l'exécution de la fonction de fini en une demi-seconde (DECODING TIME = 0.455443) . C'est très confus pour moi.

J'ai utilisé le clock_t technique pour mesurer le temps d'exécution de programmes précédemment, mais la différence n'a jamais été aussi énorme. Est-ce causé par le cross-compilateur. Tout comme une note de côté, le simulateur simule une DSP processeur cadencé à seulement 500 mhz, de sorte que la différence entre les vitesses d'horloge de processeur DSP et mon CPU origine de l'erreur est la mesure de la CLOCKS_PER_SEC.

OriginalL'auteur anshu | 2012-10-05