2012-10-16 48 views
5

我终于想出了一种方法来获取各个进程的TotalPss。现在我所关心的是,如何找出每个android进程的电池消耗,并且如果没有直接的方法发现问题,每个进程的内存使用量与电池消耗之间是否存在任何关联?任何研究论文,我可以研究这个?进程的内存使用量与电池消耗之间的相关性Android

+0

你如何解决你的问题?你可以​​描述 – Erum

回答

14

是的,就内存访问次数而言,内存使用量与能耗之间存在正相关关系。换句话说,访问的内存越多,消耗的能量就越多。

但是,能源消耗在很大程度上由应用程序与其交互的其他硬件组件(例如,CPU,显示器,收音机,GPS等)通过Android平台API执行的能源使用量占据主导地位,虚拟机和操作系统。这是因为内存不是在真空中使用,研究表明,与应用程序执行时使用的其他硬件组件相比,RAM消耗的能量相对较少。换句话说,如果正在发生内存访问,则会因CPU正在执行而耗费CPU资源,这比CPU处于空闲状态时耗费的更多。

例如,考虑基于关于HTC梦(G1)和Nexus一个器件中,从测试此以下引用:

[29]亚伦Carroll和杰诺·海泽,“消耗电力的智能电话中的分析“发表在2010年的USENIX会议上USENIX年度技术会议论文集,马萨诸塞州波士顿,2010年http://www.nicta.com.au/pub?doc=3587

”的内存,音频和FL灰子系统一致显示最低的功耗。虽然我们的微基准测试表明,在实践中,SD卡的峰值功率可能很大(50 mW)他的利用率足够低,从而平均而言,消耗的电力可以忽略不计。即使是视频播放,移动设备的数据密集型应用之一,也显示SD功耗远低于总功耗的1%。 RAM具有类似的特征;微基准测试显示,在某些工作负载中,RAM功耗可能超过CPU功耗,但在实际情况下,CPU功耗会使RAM超过两倍或更多。音频在28-34 mW范围内显示出基本静态的功耗。总体而言,RAM,音频和SD对设备的功耗影响不大,因此在能量优化方面潜力很小。“

由于这等论文说(见我的完整的参考名单,在这篇文章的末尾),能源消耗取决于应用程序用例场景,以及使用其他硬件组件的频率和持续时间双方你的应用程序和其他应用程序正在上下文切换,输出,您的应用程序执行在执行过程中。

测量能耗单纯从软件是非常困难的。通过Kristopher提到的EPOF纸可能是最近的和完整我在这方面看到的努力:

[38] Abhinav Pa在2012年4月10日至13日在瑞士伯尔尼EuroSys'12会议上发表的题为“Eprof智能手机的细粒度能源会计”。http://research.microsoft.com/en-us/people/mzh/eurosys-2012.pdf

截至2012年初作者正计划在今年晚些时候将他们的软件作为开源软件发布,但我不知道目前的情况。

另一篇论文研究的是生产的PowerTutor app on Google Play,这是密歇根大学和谷歌之间的合作的一个:

[34]李德璋,Birjodh Tiwana,志云钱,胡兆光王,罗伯特P. Dick,Zhuoqing Morley Mao和Lei Yang在第八届IEEE/ACM/IFIP国际硬件/软件代码和系统综合会议论文集“基于智能手机的精确在线功率估计和自动电池行为功率模型生成”斯科茨代尔,亚利桑那州,美国,2010。http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/39990.pdf

他们做纯软件能源使用建模,但产生准确的结果,模型必须首先在特定设备上开发,而不仅仅是软件。

如果您问的是过程消耗的内存量与能耗之间的相关性,我不记得有一篇文章专门对此进行了测量。但是,通常我会认为,具有较大内存消耗的进程也需要更多的CPU周期来执行以利用该内存,这会导致更大的能量消耗。

为了在今年早些时候节约基于位置的服务的能源,我在智能移动软件上封装了my dissertation,并阅读了大量关于移动能源消耗和分析过程中的文章。以下是我引用的参考文献,也讨论了移动应用环境中的一般能源消耗情况,以备有用。在谷歌I/O 2009年,加利福尼亚州旧金山,5月27日,2009年http://www.google.com/events/io/2009/sessions/CodingLifeBatteryLife.html

[27 -

[26]杰夫Sharkley(2009年), “电池寿命,也就是说,编码为人生” “罗伯特梅奥和Parthasarathy Ranganathan,”移动设备的能源消耗:为什么未来的系统需要需求 - 意识到能量缩减 - 功耗感知计算机系统。“卷。 3164,B.Falsafi和T.VijayKumar编,编辑:Springer Berlin/Heidelberg,2005,第301-463页。 http://goo.gl/8ClFQ

[28]杰拉德博世哈维和米卡Kuulusa,以优化移动软件内置电源剖析:施普林格,2007年http://goo.gl/YlNmU

[29]亚伦卡罗尔和杰诺·海泽,“在电力消费的分析一个智能手机“,在2010年USENIX会议上的USENIX年度技术会议论文集上发表。http://www.nicta.com.au/pub?doc=3587

[30] Aqeel Mahesri和Vibhore Vardhan,“现代笔记本电脑的功耗分解 - 功耗感知计算机系统”。卷。 3471,B.Falsafi和T.VijayKumar编,ed:Springer Berlin/Heidelberg,2005,pp.165-180。 http://goo.gl/D7XDL

Rajesh Palit,Ajit Singh和Kshirasagar Naik在第11届国际无线和移动建模,分析和仿真国际研讨会论文集“建模便携式无线设备上应用的能量成本”系统,Vancouver,British Columbia,Canada,2008. http://dl.acm.org/citation.cfm?id=1454562

T. Farrell,R. Lange和K. Rothermel(2007) “in Mobile and Ubiquitous Systems:Networking & Services,2007.MobiQuitous 2007. Fourth Annual International Conference on,pp.1-8,6-10 Aug 2007. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4450984&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4450984

张立德,Birjodh Tiwana,钱志云,王兆光,罗伯特P.迪克,卓庆莫利毛和雷洋,“精确的在线功率估计和基于自动电池行为的智能手机功率模型生成” (Eberle)和GP Perrucci(2011),“能量测量(Energy measurement)”,第三届IEEE/ACM/IFIP国际会议上硬件/软件代码和系统综合的论文集,美国亚利桑那州斯科茨代尔2010年。 2011年1月9日至12日IEEE消费者通信与网络大会(CCNC),937-941页,2011年1月9日至12日,针对最新智能手机的定位方法的竞选活动。http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5766645&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5766645

[36] M. Kjaergaard(2012),“最小化移动电话上基于位置的服务的功耗”,Pervasive Computing,IEEE,Vol。 11 pp。67-73。 http://goo.gl/ymJuZ

[38]阿比纳夫·帕塔克,Y.查理胡,和张明(2012), “细粒度能源核算上的智能手机与Eprof,” 在EuroSys'12,伯尔尼,瑞士,2012年4月10-13。 http://research.microsoft.com/en-us/people/mzh/eurosys-2012.pdf

+0

相当详尽的参考书目(其中I也假设是从你的博士论文复制和粘贴: - )... –

+0

@KristopherMicinski是的,我的论文肯定有助于参考书目部分:) –

+0

:)非常感谢你barbeau。这是一个了不起的答案。 – Jonathan

1

你应该看看Eprof,相关paper

细粒度能源核算上的智能手机与Eprof

给出了其帐户的工具。答案是,每个进程的内存使用量并不是真正的电量消耗的原因,它更多的是单个应用程序执行的操作。我建议你阅读这篇论文,并在你自己的应用程序上使用这个工具来弄清楚它是如何工作的,但是!

+0

嗨Kristopher,我读了这篇论文。从我能理解的情况来看,通过Eprof,我可以估计我的应用程序耗尽了多少电量。不是手机上的所有应用程序。我正在寻找一种方法,可以帮助我找出手机上运行的所有应用程序的每个应用程序的电池消耗量 – Jonathan

+0

@Jonathan因为应用程序没有在个人电池上使用电池,所以在这里没有意义。基础。什么构成了应用程序的电池电量?它没有任何意义,因为内核的参与太多了。此外,大多数电池使用情况都是因为无线电等原因而发生的,谁来说这些都属于特定的过程?然而,虽然仍然是近似的,但您可能想要查看适用于Android的'powertop':https://gitorious.org/android/powertop –

+0

@Jonathan似乎您似乎错误地计算了这些设备上的功耗消耗情况。功耗主要是由应用程序以外的其他来源消耗的,绝大多数时间是*压倒性的,这样单个应用程序的功耗将被整个系统的功耗所掩盖,也许这将有助于思考为什么你想知道这个? –

2

内存使用情况与电池使用情况没有关联。它需要相同数量的能量来存储“无”,因为它在内存中“存储”的东西。

如果有很多阅读和写作正在进行,那么是的,它会影响它,但只是在那里没有。