【发布时间】:2016-05-10 07:58:36
【问题描述】:
我重写了整个问题,人们显然不理解它。
RDTSC 用于计算 CPU 周期,它随 CPU 节流而变化。
目前,RDTSC 不会随 CPU 节流而变化。
一些旧的应用程序,预计 RDTSC 会随着 CPU 节流而变化。
我如何让 RDTSC 满足他们的期望?
我不想分析代码,我不想重写大量代码,我不想强迫用户弄乱 BIOS 或内核权限,我只想让遗留应用程序像他们应该。
【问题讨论】:
-
我以前看过这两个,这有助于理解问题,但不要修复它。我不是在写一个新的应用程序,我是在尝试让遗留应用程序工作而不会对它们进行过多的修改......我不能只是到处替换他们的大部分代码。
-
人们一定很讨厌我,每次我问一个问题,我都会立即被否决,没有人解释原因。
-
如果我对您的理解正确,您已经拥有使用 RDTSC 的旧应用程序,并且您确实在寻找一种方法来运行现有的二进制文件,只需极少或无需修改,以便它们像在旧硬件上一样工作。我只能希望你不要雇佣那些为新项目编写原始代码的人。
-
@PeterCordes:自 1995 年以来,我一直在为 SMP x86 构建并行编程工具。我们一直使用 TSC 作为时序源。是的,在过去糟糕的日子里,有时线程从一个 CPU 切换到另一个 CPU 会给我们带来不一致的 TSC 计数。这不是不可用的。您只需要多次运行计时并抛出无意义的答案。是的,即使在 16 个核心系统上,它现在也好多了。