Android:数据库操作消耗功率吗?

时间:2014-04-28 13:35:05

标签: java android database battery

Android应用程序(Java)需要定期更新相同的数据库记录。它可以每隔一分钟或每分钟完成。仅关于电池寿命,是否每分钟每隔一秒运行一次显着差异(如将电池寿命缩短一半)?

由于只涉及CPU和内存,我认为没有区别,但我不确定。正在运行的应用程序&无论如何,其他系统进程。

每秒更新一个简单的应用程序;每分钟缓存和更新(或等待某些条件)会使代码更复杂,更容易出错。

4 个答案:

答案 0 :(得分:6)

  

每分钟每秒运行一次会有什么显着差异吗?

每秒做一些事情所消耗的能力大约是每分钟做事的60倍。

  

由于只涉及CPU和内存,我认为没有区别,但我不确定。

大多数人将他们的数据库存储在闪存中。写入闪存消耗功率。

  

正在运行的应用程序&无论如何,其他系统进程。

每秒钟而不是每分钟执行一次工作更有可能让CPU内核保持运行,否则就不会。

答案 1 :(得分:2)

我同意CommonsWare的回答 - 如果你不需要每秒做一些事情并且可以不那么频繁地做,那么最好的做法是尽可能地减少频率,因为更频繁地做更多会消耗更多能量。

但是,要解决问题的“重要”部分,特别是与其他设备操作相关的问题,请根据HTC Dream(G1)和Nexus One设备的测试考虑以下引用,来自:

  • Aaron Carroll和Gernot Heiser,“智能手机功耗分析”,2010年USENIX年会技术会议论文报告,2010年,波士顿,马萨诸塞州。http://www.nicta.com.au/pub?doc=3587
  

“RAM,音频和闪存子系统始终显示出最低的功耗。虽然我们的微基准测试显示SD卡的峰值功率可能很大(50 mW),但实际上利用率足够低平均而言,消耗的功率可以忽略不计。甚至视频播放是移动设备数据密集型用途之一,显示SD功率远低于总功耗的1%.RAM具有相似的特性;微基准测试显示RAM功率可以在某些工作负载下超过CPU功率,但在实际情况下,CPU功率会使RAM超过两倍或更多。音频在28-34 mW范围内显示出很大的静态功耗。总体而言,RAM,音频和SD几乎没有影响关于设备的功耗,因此几乎没有提供能源优化的潜力。“

当CPU不忙时保持CPU忙碌可能是每秒连续写入数据库的最大能量影响,而不是每分钟写一次。相对而言,假设正常使用,闪存使用隔离消耗相对较少的能量。

如果您对其他参考和讨论感兴趣,请参阅: https://stackoverflow.com/a/13004377/937715

答案 2 :(得分:1)

由于只涉及CPU和内存,我认为没有区别,但我不确定。正在运行的应用程序&无论如何,其他系统过程 - >

每次尝试更新时,处理器都会执行一条或多条指令。并且每条指令消耗功率。所以,是的每秒更新消耗更多的电力。

答案 3 :(得分:0)

正如其他人所说,最好尽量减少处理器的使用。根本原因是称为空闲或C状态。在这些空闲状态下,处理器的某些部分实际上是关闭的。

处理器将在空闲后几乎立即进入其中一个省电C状态,并在几秒钟后进入更深的状态之一。我不记得确切的间隔有多长,但绝对不会超过几秒钟。

此外,如果处理器必须唤醒以进行一些计算,则不必再次重复下降;它会立即下降到较低的状态,除非它非常需要它来提高其空闲状态。您可以在“Power Management States: P-States, C-States and T-States”了解更多相关信息。

我知道您的更新频率没有太多选择,但理想情况可能接近7秒。太少,处理器不会落入更深,更节能的c状态。比这更长的时间,处理器被其他设备和进程的许多其他中断唤醒,因此再次唤醒将不会产生太大的影响。

小块I / O操作消耗功率,主要是通过保持处理器忙碌和唤醒。根据您的编译器,运行时和VM,可以通过DMA进行更大的传输,而不直接涉及CPU。这可能有助于提高能源效率。

PS Sean,感谢参考文献。