我正在尝试测量代码两点之间的经过时间 我尝试在下面的代码中使用clock_gettime函数,但它没有给出预期的结果。
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
#include <time.h>
int main() {
struct timespec start, finish;
long unsigned int elapsed;
clock_gettime(CLOCK_MONOTONIC, &start);
sleep(1);
clock_gettime(CLOCK_MONOTONIC, &finish);
elapsed = finish.tv_nsec;
elapsed = elapsed - start.tv_nsec;
printf("%lu\n", elapsed);
}
我期待接近1.000.000.000的东西,但它打印的值如:122360,220942,205456,225053。
我做错了什么?有没有更好的方法来测量经过时间,分辨率至少为0.1秒?