ubuntu/i7上的执行时间和gettimeofday

use*_*956 2 c

为了测量C中的函数的执行时间,如何准确的是POSIX函数gettimeofday()的Ubuntu 12.04上的英特尔酷睿i7?为什么?如果很难说,那该怎么找出来?我找不到直接的答案.

The*_*Saw 5

如果您正在构建秒表,则需要一个不适合任何时间服务器的一致时钟.

#include <time.h>
...
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC_RAW, &ts);
Run Code Online (Sandbox Code Playgroud)

如果CLOCK_MONOTONIC_RAW不存在,请CLOCK_MONOTONIC改用.如果你想要时间,你仍然不应该使用gettimeofday.

clock_gettime(CLOCK_REALTIME, &ts);
Run Code Online (Sandbox Code Playgroud)

这种时钟的定时器是高分辨率,但它会移动.在timespec支持的分辨率小纳秒,但您的计算机可能只能够在微秒的地方测量.

gettimeofday返回a timeval,其分辨率以微秒为单位.