Timeval结构使用

Siv*_*iva 0 c linux time gettime gettimeofday

我需要计算运行某个函数所需的时间并运行以下代码,以纳秒为单位记录并输出一段代码的执行时间

并且也有任何区别

struct timeval timer_spent & timeval timer_spent

/* Put this line at the top of the file: */
#include <sys/time.h>

/* Put this right before the code you want to time: */
struct timeval timer_start, timer_end;
gettimeofday(&timer_start, NULL);

/* Put this right after the code you want to time: */
gettimeofday(&timer_end, NULL);
double timer_spent = timer_end.tv_sec - timer_start.tv_sec + (timer_end.tv_usec - timer_start.tv_usec);
printf("Time spent: %.6f\n", timer_spent)/1000000.0;
Run Code Online (Sandbox Code Playgroud)

但我需要精确的时间,以纳秒为单位.我对timeval结构没有完全的了解.

亲切地帮助我们.. !!

Ser*_*kov 5

但我需要精确的时间,以纳秒为单位.

然后用

int clock_gettime(clockid_t clk_id, struct timespec *tp);
Run Code Online (Sandbox Code Playgroud)

它以秒和纳秒返回时间

struct timespec {
  time_t   tv_sec;        /* seconds */
  long     tv_nsec;       /* nanoseconds */
};
Run Code Online (Sandbox Code Playgroud)

有用的链接: