据我了解测量实际操作CPU频率,我需要访问模型特定寄存器(MSR)IA32_APERF和IA32_MPERF(Assembly CPU frequency measuring algorithm)。
但是,对MSR寄存器的访问是特权(通过rdmsr指令)。还有另外一种方法吗?我的意思是,例如,通过我可以在我的代码中调用的设备驱动程序/库。我觉得读取寄存器是特权的,这似乎很奇怪。我认为只有写给他们才会有特权。
注意:rdtsc指令不考虑涡轮增压,因此无法报告实际工作频率
编辑: 我对Linux和/或Windows的解决方案很感兴趣。