获取cpu主频

rdtsc 指令可以获取CPU指令周期数,借此可以测试软件执行效率,参考使用rdtsc指令,测量程序的运行速度

同时文中指出由于乱序执行,及cpu变频,会导致测试不准。

不过在某些对性能和延迟要求高的场合,是可以限制cpu降频的。方法如下(仅针对ubuntu):
- 在主板bios关掉所有节能选项;
- 用cpufrequtils设置为高性能模式;

sudo apt-get install cpufrequtils
sudo vi /etc/default/cpufrequtils

把下面一行加到cpufrequtils文件里面,然后保存关闭:
GOVERNOR="performance"

sudo update-rc.d ondemand disable
cpufreq-info  #查看一下

用i7z查看更直观

sudo apt-get install i7z
sudo i7z

i7z-log

C0状态一直在100%的,就说明已经设置成功!下面就可以用rdtsc 来获取主频了。

static inline unsigned long long rdtsc_oai(void) __attribute__((always_inline))
{
  unsigned long long a, d;
  __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d));
  return (d<<32) | a;
}

double get_cpu_freq_GHz(void) 
{
  unsigned long long in = rdtsc_oai();
  sleep(1);
  unsigned long long diff = (rdtsc_oai()- in);
  cpu_freq_GHz = (double)diff/1000000000;

  return cpu_freq_GHz; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值