cpp linux:关于rdtsc

我在我的代码中使用以下函数:

static __inline__ unsigned long long rdtsc(void){ unsigned long long int x; __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); return x; } 

这个函数是否返回自上次启动以来的刻度数? 我在哪里可以find关于这个function的文档?

RDTSC获取自上次重置以来的CPU周期数,请参阅维基百科 。

英特尔指令集手册卷2A和B作为更可信的来源:

处理器在每个时钟周期单调递增时间戳计数器MSR,并在处理器复位时将其重置为0。 有关时间戳计数器行为的详细信息,请参阅英特尔®64和IA-32架构软件开发人员手册,卷3B第16章中的“时间戳计数器”。

作为一个方面说明:你不应该发射字节,而是使用实际的RTDSC指令助记符,使其更具可读性。