首页 新闻 会员 周边

Windows c++如何计算cpu实时速度

0
悬赏园豆:100 [待解决问题]

如图, windows用c/c++如何计算出这个速度. 我尝试了几个方法, 都是获取的旁边的基准速度.

丁方的主页 丁方 | 初学一级 | 园豆:102
提问于:2022-04-24 21:32
< >
分享
所有回答(1)
0

核心原理:使用rdmsr指令读取cpu的msr寄存器,具体在寄存器的什么位置需要参考cpu的手册

AMD64 Architecture Programmer’s Manual 文档:
https://www.amd.com/system/files/TechDocs/40332.pdf
第二卷的3.2及13.2描述了性能相关的msr的信息

实现方法参考C#的OpenHardwareMonitor的Hardware/CPU/AMD17CPU中316行左右的GetMultiplier(获取倍频)和GenericCPU的270行(获取总线频率),相乘即得到实时频率。

顺便Intel® 64 and IA-32 Architectures Software Developer’s Manuals 文档:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
msr信息在第四卷

akibayashi | 园豆:202 (菜鸟二级) | 2022-05-10 19:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册