采取最少的步骤来质疑给定代码的执行情况(快速的),不是 那个最小的单位,最精细的测量?
#pragma intrinsic(__rdtsc)
int main(void)
{
ULONGLONG t1,t2;
t1= __rdtsc();
work();
t2= __rdtsc();
std::cout<<t2-t1<<std::endl;
}
最佳答案
手册页,位于:http://linux.die.net/man/3/clock_gettime给出了所有的细节。
你想调用clock_gettime()
函数
要为您的流程获取时间,请使用:
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, struct timespec * );
或者当前线程使用:
clock_gettime(CLOCK_THREAD_CPUTIME_ID, struct timespec * );
成功返回 0,失败返回 -1(在这种情况下 errno 被适当设置)。
结构 timespec 定义为:
struct timespec
{
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
以上都在头文件中定义:time.h
关于c++ - 固有滴答计数,无需外部 api 的良好性能测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33311981/