cpp linux: about rdtsc

cpp linux: about rdtsc

本文关键字:rdtsc about linux cpp      更新时间:2023-10-16

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

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

此函数是否返回自上次启动以来的刻度数?在哪里可以找到有关此功能的文档?

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

英特尔指令集手册第2A&B、 作为更值得信赖的来源:

处理器单调递增时间戳计数器MSR每个时钟周期,并且每当处理器被重置时将其重置为0。请参阅"英特尔®;64与IA-32"第16章中的"时间戳计数器"体系结构软件开发人员手册,第3B卷,针对特定时间戳计数器行为的详细信息。

附带说明:您不应该发送字节,而应该使用实际的RTDSC指令助记符,使其可读性更强。