Я пытаюсь измерить, сколько времени занимает функция.
У меня есть небольшая проблема: хотя я пытаюсь быть точным и использую плавающие точки, каждый раз, когда я печатаю свой код, используя% lf, я получаю один из двух ответов: 1.000 ... или 0.000 .... Это приводит мне интересно, если мой код правильный:
#define BILLION 1000000000L;
// Calculate time taken by a request
struct timespec requestStart, requestEnd;
clock_gettime(CLOCK_REALTIME, &requestStart);
function_call();
clock_gettime(CLOCK_REALTIME, &requestEnd);
// Calculate time it took
double accum = ( requestEnd.tv_sec - requestStart.tv_sec )
+ ( requestEnd.tv_nsec - requestStart.tv_nsec )
/ BILLION;
printf( "%lf\n", accum );
Большая часть этого кода не была сделана мной. На странице этого примера был код, иллюстрирующий использование clock_gettime: http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/clibref/qnx/clock_gettime.html
Может кто-нибудь сообщить мне, что неверно, или почему я получаю только целые значения, пожалуйста?
Большое спасибо,
Jary