Я пытаюсь измерить, сколько времени занимает функция.
У меня есть небольшая проблема: хотя я стараюсь быть точным и использую плавающие точки, каждый раз, когда я печатаю свой код, используя% 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
Может кто-нибудь, пожалуйста, сообщите мне, что является неправильным, или почему я получаю только целые значения?
Большое спасибо,
Джари