为什么 MIPS 也会有假的呢? 原因是 BogoMips 本来就不是用来比较 CPU 的计算能力的 它是用来调校 Linux kernel 的计时单位.
假如我要 delay 1 mini-second (ms)那么在不借助特殊硬件的情况之下 我怎么知道多久是 1 ms 呢? 最简单的方法 就是做一个简单的循环再看看绕完 X 圈后 花掉多少时间 然后反推绕几圈是 1ms. 这个每秒绕几圈就是 loops_per_jiffy.
那么一个 jiffy 是多久呢? Linux 预设为 4ms但其实可以调整为 1~10 ms 这也是 Linux 一个 tick 所需要的时间.至于一圈 loop 是几条指令? 这个也不一定 在 Linux C code 里面会用一个循环取多次的值平均.
还是没搞懂Bogomips最主要的应用在哪呢?
它唯一的用途就是调校 timer interrupt 的时间而已. 为什么要特别介绍它? 只是因为我以前看不懂 WIKI 写的 “不科学的方法" “它不可在不同的CPU间进行比较演示" 是什么意思. 后来才知道 “不科学" 是指它根本没有精确地计算任何东西 只是读个 data 减个 counter. “不能比较" 也是显而易见 它完全反映不出计算能力 顶多只能反映数循环的能力 所以也没啥好比的.