电池安全编码

Battery-safe coding

我想知道是否有一些规则或提示如何在编码时防止电池直接耗尽。我知道可能有一些编码方法可以最大限度地减少处理器的工作量或防止泄漏。但是,除了位置服务和互联网连接等常见嫌疑人之外,还有人有类似指南或类似 "checklist" 的东西吗?

我假设你指的是你的申请。根据我的经验,主要的能源消耗者是,#1 是最重要的:

  1. CPU 用法
  2. 4G
  3. 无线网络
  4. 蓝牙
  5. 内存

4G 或 WiFi 哪个更差取决于您的使用情况,例如无论您是通过蜂窝网络在信号较差的情况下通话,还是通过 WiFi 传输视频。 GPS 取决于您是否使用它。如果您正在获取转弯指示,它会将您的 phone 变成一个小加热器并很快耗尽电池电量。

尽量减少 4G、WiFi 和蓝牙的使用非常简单。我不确定是否有可能以任何实际方式减少内存使用的能量。

CPU 用法是最大的势能消耗,因为它可以一直不断地吸收电子。值得庆幸的是,现代处理器会在什么都不做时关闭,即空闲。这称为进入空闲/C 状态。您可以猜到,单元格 phone 几乎大部分时间什么都不做。

您可以通过多种方式编写程序来最大程度地减少 CPU 能耗。实际上,更好的说法是,您可以通过错误编写程序来破坏这些节能功能。如果 CPU 进入休眠状态以最大限度地减少功耗,那么将其唤醒会增加能耗。另一个要考虑的因素是 CPU 睡了多长时间。处理器闲置的时间越长,它进入的睡眠状态就越深,而越深的睡眠状态消耗的电量就越少。

那么,您需要做什么才能最大程度地减少 CPU 使用量?您想少用 CPU,或者换句话说,让您的程序更快地完成任何工作。此外,增加程序空闲的时间长度。

现在让我们来看看您可以做的一些具体事情:

  1. 让你的程序尽可能快地做任何事情。通过找到最快的算法并以最有效的方式实施它来做到这一点。换句话说,优化。

  2. 尽量减少对事件的检查。您检查事件是否发生的次数越多,唤醒处理器的次数越多,它进入真正深度睡眠状态的可能性就越小。通过计算出在保持性能的同时必须检查某些事件的最大间隔来执行此操作。