如何在Linux内核中计算BogoMips?
发布时间:2020-12-13 22:47:15 所属栏目:Linux 来源:网络整理
导读:如何在 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,se
如何在
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 <stdio.h> #include <time.h> #ifdef CLASSIC_BOGOMIPS /* the original code from the Linux kernel */ static __inline__ void delay(int loops) { __asm__(".align 2,0x90n1:tdecl %0ntjns 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 BogoMipsn",loops_per_sec/500000,(loops_per_sec/5000) % 100 ); return 0; } } printf("failedn"); return -1; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |