Mit clock() zum Messen der Ausführungszeit

Ich bin mit einem C Programm mit GCC und ein proprietärer DSP-cross-compiler zu simulieren einige functioality. Ich bin mit dem folgenden code zum Messen der Ausführungszeit von bestimmten Teil von meinem Programm:

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);

wo conv3_dec() ist eine definierte Funktion in meinem Programm, und ich will zu finden, die Laufzeit dieser Funktion.

Nun die Sache ist, wenn mein Programm läuft, die conv3_dec() Funktionen läuft seit fast 2 Stunden aber der Ausgang aus der printf("DECODING TIME = %f\n",duration) sagt, dass die Ausführung der Funktion beendet, in nur einer halben Sekunde (DECODING TIME = 0.455443) . Dies ist sehr verwirrend für mich.

Habe ich die clock_t Technik zur Messung der Laufzeiten von Programmen, die zuvor aber der Unterschied war nie so groß. Ist dies verursacht durch den cross-compiler. Nur als Randnotiz, der simulator simuliert einen DSP-Prozessor mit nur 500 MHz, so ist der Unterschied in der Taktrate des DSP-Prozessor und meine CPU den Fehler verursacht, ist die Messung der CLOCKS_PER_SEC.

InformationsquelleAutor anshu | 2012-10-05

Schreibe einen Kommentar