【问题标题】:Battery-safe coding电池安全编码
【发布时间】:2015-02-24 11:42:07
【问题描述】:

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

【问题讨论】:

  • 我在这方面写了一些东西。我会挖掘出来并发布。
  • 请说明你想要什么。您说“在编码时直接防止电池消耗”似乎是说您希望在设备上编译或调试代码时尽量减少消耗。 “编码方式”意味着您想了解如何最大限度地减少您正在编码/创建的应用程序的电池消耗。你问的是哪个?
  • 似乎很清楚 OP 的意思是后者。
  • 这个问题相当广泛,很难以这种形式回答。 (答案是“任何运行 CPU 或 GPU、使用无线电或密切跟踪 GPS 的东西都会影响您的电池寿命”)。我建议您编辑讨论您的应用程序到底在做什么,以及它正在使用什么服务。这将带来更务实的建议。
  • 这可能会对您有所帮助。 software.intel.com/en-us/energy-efficient-software

标签: ios battery


【解决方案1】:

我假设您的意思是您的应用程序。根据我的经验,能源的主要消费者是,其中 #1 是最重要的:

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

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

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

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

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

那么您需要做些什么来最大程度地减少 CPU 使用率?你想减少 CPU 的使用,或者换一种说法,让你的程序以更快的速度完成。此外,增加程序空闲的时间长度。

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

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

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

【讨论】:

  • 哇,感谢您抽出宝贵的时间。实际上我已经知道 4G/WiFi 或 Loops。 CPU 使用率正是我所说的“编码时”的意思。在决策的中间,例如使用循环或开关/案例(示例),我还想考虑我的决策的能源消耗。此外,在提高内存使用率时“代码重新设计”的情况下,我还想关心电池。但你的提示是一个很好的开始。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
相关资源
最近更新 更多