bogoMIPS 值正在变化

2024-02-13

我一直在读取 Samsung Galaxy (sgh-i897) 上的 cpuinfo 文件来检索 bogoMIPS 值。现在正在学习如何解释这些信息。

最初,我在加载线程的主活动下执行此操作,并且始终获得值 997.59。然后,我将文件读取方法移至服务中,因为直到很久以后我才在 UI 中需要它。一旦我这样做了,我读到的值就变得非常不同,并且似乎随着每个应用程序的启动而改变,总是慢得多,比如在 300 到 500 的范围内。

我的问题是:

  1. Android OS / Linux 是否会导致测量 bogoMIPS 值并定期修改 cpuinfo 文件?

  2. 如果是这样,是否有一种编程方式来强制它?

  3. 为什么它会根据我是从服务读取文件还是从主活动线程读取文件而有所不同?

  4. 最终,如果一个人想要最正确的数字,最好是简单地编写我们自己的计时循环,以便在我们需要的时候自己获得它? (假设它由于CPU负载而一直在变化?)


简短的回答:如果您不打算破解内核,请不要使用 BogoMIPS。

BogoMIPS 是什么东西?

操作系统内核执行的大多数任务都涉及等待硬件,或者最近,等待其他处理器内核上运行的进程。内核有多种方法在不同的时间尺度上等待。在最短的时间内,它通常只是“原地打转”,技术上更称为“繁忙等待循环”。

BogoMIPS 基准测试只是一个繁忙的等待循环。内核运行这样的循环,使用相当可靠的挂钟对其进行计时,并确定需要运行繁忙的等待循环以等待特定时间量所需的时间。

为什么 BogoMIPS 值会变化?

当计算机(在本例中为智能手机)不执行大量工作时,它很少需要非常快的处理器。当操作系统发现它可以使用低于最大频率的频率时,它可能会将处理器降低到较低的频率。这是操作系统减少能源使用(与电池供电的计算机相关)和热量产生(与几乎所有东西相关)的方法之一。

当然,当最大频率降低时,BogoMIPS 基准测试的结果不再相关,因为繁忙等待循环中的每次迭代都将花费更长的时间。内核将重新运行基准测试并更新 BogoMIPS 值,以便繁忙等待仍然是短时间等待的可靠方式。

当处理需求增加并且处理器需要再次加速时,也会出现类似的情况。

我应该如何使用这个 BogoMIPS 值?

除非您正在破解内核中处理时序的某些部分,否则您不应该被 BogoMIPS 值所困扰。事实上,你应该使用任何东西butBogoMIPS 值。可能有某种方法可以使用 Android SDK 或使用 提供的信息来确定当前 CPU 频率/sys文件系统。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bogoMIPS 值正在变化 的相关文章

随机推荐