我一直在阅读我的三星 Galaxy (sgh-i897) 上的 cpuinfo 文件来检索 bogoMIPS 值。刚刚学习如何解释这些信息。
最初我在加载线程中的主要 Activity 下执行此操作,并且始终获得 997.59 的值。然后我将文件读取方法移到服务中,因为直到很久以后我才在 UI 中需要它。一旦我这样做了,我读取的值就变得非常不同,并且似乎随着每个应用程序启动而变化,总是慢得多,比如在 300 到 500 范围内。
我的问题是:
最佳答案
简短的回答:如果您没有破解内核,请不要打扰 BogoMIPS。
BogoMIPS 是什么东西?
操作系统内核执行的大多数任务都涉及等待硬件,或者最近在其他处理器内核上运行的进程。内核有多种方法可以在不同的时间尺度上等待。在最短的时间内,它通常只是“绕圈子跑”,在技术上更称为“忙等待循环”。
BogoMIPS 基准测试只是一个繁忙的等待循环。内核运行这样的循环,使用非常可靠的挂钟对其进行计时,并确定运行繁忙的等待循环以等待特定时间所需的时间。
为什么 BogoMIPS 值会发生变化?
当计算机(在本例中为智能手机)不执行大量工作时,它很少需要非常快的处理器。当操作系统注意到它可以使用低于最大频率的频率时,它可能会将处理器降低到较低的频率。这是操作系统可以减少能源使用(与电池供电的计算机相关)和热量产生(与几乎所有事物相关)的方法之一。
当然,当最大频率降低时,BogoMIPS 基准测试的结果不再相关,因为忙等待循环中的每次迭代都会花费更长的时间。内核将重新运行基准测试并更新 BogoMIPS 值,因此忙等待仍然是短时间等待的可靠方式。
当处理需求增加时,类似的事情也成立,处理器需要再次节流。
我应该如何使用这个 BogoMIPS 值?
除非您正在破解处理时序的内核的某些部分,否则您不应该被 BogoMIPS 值所困扰。事实上,你应该使用任何 但 的 BogoMIPS 值。可能有一些方法可以使用 Android SDK 或使用 /sys
文件系统提供的信息来确定当前的 CPU 频率。
关于android - bogoMIPS 值正在改变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11463448/