I am running a C program using GCC and a proprietary DSP cross-compiler to simulate some functioality. I am using the following code to measure the execution time of particular part of my program:
clock_t start,end;
printf("DECODING DATA:
");
start=clock();
conv3_dec(encoded, decoded,3*length,0);
end=clock();
duration = (double)(end - start) / CLOCKS_PER_SEC;
printf("DECODING TIME = %f
",duration);
where conv3_dec()
is a function defined in my program and I want to find the run-time of this function.
Now the thing is when my program runs, the conv3_dec()
functions runs for almost 2 hours but the output from the printf("DECODING TIME = %f
",duration)
says that the execution of the function finished in just half a second (DECODING TIME = 0.455443
) . This is very confusing for me.
I have used the clock_t
technique to measure the runtimes of programs previously but the difference has never been so huge. Is this being caused by the cross-compiler. Just as a side note, the simulator simulates a DSP processor running at just 500MHz, so is the difference in the clock speeds of the DSP processor and my CPU causing the error is measuring the CLOCKS_PER_SEC.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…