如果在英特尔 CPU 上关闭"SpeedStep Technology",RDTSC() 是否准确?

Is RDTSC() accurate if "SpeedStep Technology" is turned off on a Intel CPU?

本文关键字:RDTSC 是否 SpeedStep CPU 英特尔 如果 Technology      更新时间:2023-10-16

寻找最准确的时间戳。

CPU 周期计数器似乎可以提供:使用无符号 __int64 __rdtsc();

如果我能够关闭动态 CPU 速度选项,英特尔芯片上的"SpeedStep 技术"(从我假设的 BIOS 中?

  • rdtsc() 是否是两个之间经过时间的准确度量事件?

  • CPU 时钟速度是多少?是否完全符合广告CPU 速度(即 2.4 GHz CPU - 每秒使用 2,400,000,000 除以 CPU 时钟计数值以获得实际时间)?

rdtsc() 会准确衡量两个事件之间经过的时间吗?

不,不是一般的。如果您将代码限制为在单个处理器/内核上运行,则可能会有一些机会,但如果没有它,计数器与单独处理器/内核之间的差异可能会导致错误的结果。

CPU 时钟速度是多少?它是否正是宣传的 CPU 速度(即 2.4 GHz CPU - 每秒使用 2,400,000,000 除以 CPU 时钟计数值以获得实际时间)?

大多数机器允许用户在 BIOS 设置中调整时钟速度。根据代码运行的环境,您可能可以访问主板的 1.024 MHz 时钟,无论 CPU 时钟速度如何,该时钟都是恒定的。如果你能读懂它,这可以为你确定时间戳计数器上的速率提供坚实的基础。