x86 - 在 qemu (x86_64) 下测量 CPU 周期
问题描述
我试图或多或少准确地确定在 QEMU (x86_64) 下运行的程序中的函数(-enable-kvm
如果重要,则设置标志)执行多少 CPU 周期。
按照这份英特尔白皮书中的说明,似乎为了获得最准确的读数,我需要使用 和 指令的rdtsc
某种rdtscp
组合cpuid
。
这有两个问题:
在我的主机(也是 x86_64)上,该
rdtscp
指令受支持,但在 QEMU 下不支持。我没有找到这方面的信息,这个功能在 QEMU 下普遍没有吗?似乎两者都
rdtsc
可能rdtscp
导致 VM 存在,从而干扰了我的测量精度。我怎么知道这是否是这种情况,有没有办法可以防止它?