linux bogomips,如何在Linux内核中计算BogoMips?

/*

* Standalone BogoMips program

*

* Based on code Linux kernel code in init/main.c and

* include/linux/delay.h

*

* For more information on interpreting the results,see the BogoMIPS

* Mini-HOWTO document.

*

* version: 1.3

* author: Jeff Tranter (Jeff_Tranter@Mitel.COM)

*/

#include

#include

#ifdef CLASSIC_BOGOMIPS

/* the original code from the Linux kernel */

static __inline__ void delay(int loops)

{

__asm__(".align 2,0x90\n1:\tdecl %0\n\tjns 1b": :"a" (loops):"ax");

}

#endif

#ifdef QNX_BOGOMIPS

/* version for QNX C compiler */

void delay(int loops);

#pragma aux delay = \

"l1:" \

"dec eax" \

"jns l1" \

parm nomemory [eax] modify exact nomemory [eax];

#endif

#ifdef PORTABLE_BOGOMIPS

/* portable version */

static void delay(int loops)

{

long i;

for (i = loops; i >= 0 ; i--)

;

}

#endif

int

main(void)

{

unsigned long loops_per_sec = 1;

unsigned long ticks;

printf("Calibrating delay loop.. ");

fflush(stdout);

while ((loops_per_sec <<= 1)) {

ticks = clock();

delay(loops_per_sec);

ticks = clock() - ticks;

if (ticks >= CLOCKS_PER_SEC) {

loops_per_sec = (loops_per_sec / ticks) * CLOCKS_PER_SEC;

printf("ok - %lu.%02lu BogoMips\n",loops_per_sec/500000,(loops_per_sec/5000) % 100

);

return 0;

}

}

printf("Failed\n");

return -1;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值