在基准测试工具中,我使用IA32_APERF / IA32_MPERF比率来确定在基准测试期间CPU是否会降低时间。我对寄存器进行了两次采样,一次在基准测试之前,然后一次,然后采用增量并计算一个比率。两次都以相同的顺序读取寄存器。
由于在机器上禁用了涡轮增压模式,理论上不可能得到>的比率。在大多数情况下都是如此,但一个基准是“空基准”。它什么都不做,所以它的运行时间接近0秒。我们的谈话顺序为10 ^ { - 6}秒。
在这种情况下,有时比率超过1.在极端情况下,>≥3。例如。 aperf_delta = 62049,mperf_delta = 17948,比率约为3.46。
我知道要获得准确的比率,采样率需要更长(更长),但即便如此,上述结果表明IA32_APERF计数器的增加速度比IA32_MPERF快。由于turbo模式已关闭,我认为不会发生这种情况。
这可能吗?有什么我不知道这两个寄存器的准确性吗?正如我所说,这似乎只发生在这种堕落的“空基准”案例中。
由于